S390_GUARDED_STORAGE(2) | System Calls Manual | S390_GUARDED_STORAGE(2) |
s390_guarded_storage - операции со средством защищённого хранения z/Architecture
#include <asm/guarded_storage.h>
int s390_guarded_storage(int command, struct gs_cb *gs_cb);
Системный вызов s390_guarded_storage() задействует средство защищённого хранения (Guarded Storage Facility, свойство z/Architecture) для процессов пользовательского пространства.
Средство защищённого хранения — это аппаратное свойство, позволяющее пометить до 64 областей памяти (в z14) для защиты; при чтении указателя новыми инструкциями «Load Guarded» (LGG) или «Load Logical and Shift Guarded» (LLGFSG) будет проверяться диапазон согласно загружаемому значению и вызываться (установленный ранее) обработчик пользовательского пространства, если затронута одна из защищённых областей.
В аргументе command задаётся выполняемая функция. Поддерживаются следующие команды:
В аргументе gs_cb указывается адрес структуры блока управления защищённым хранением и пока используется только в команде GS_SET_BC_CB; все остальные упомянутые команды игнорируют этот аргумент.
При успешном выполнении s390_guarded_storage() возвращает значение 0.
В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом.
Данный системный вызов появился в Linux 4.12.
Данный системный вызов есть только в Linux и доступен только на архитектуре s390.
Средство защищённого хранения доступно начиная с System z14.
В glibc нет обёртки для данного системного вызова; запускайте его с помощью syscall(2).
Описание средства защищённого хранения вместе с инструкциями, блоком управления защищённым хранением, структурой списка событий защищённого хранения доступно в «z/Architecture Principles of Operations» начиная с 12-го выпуска.
В структуре gs_cb есть поле gsepla (Guarded Storage Event Parameter List Address), которое является указателем пользовательского пространства на структуру Guarded Storage Event Parameter List (содержащей адрес вышеупомянутого обработчика событий в поле gseha), а её описание доступно как определение структурного типа gs_epl в заголовочном файле asm/guarded_storage.h.
2019-03-06 | Руководство программиста Linux |