| s390_guarded_storage(2) | System Calls Manual | s390_guarded_storage(2) |
s390_guarded_storage - операции со средством защищённого хранения z/Architecture
Стандартная библиотека языка C (libc, -lc)
#include <asm/guarded_storage.h> /* определения констант GS_* */ #include <sys/syscall.h> /* определения констант SYS_* */ #include <unistd.h>
int syscall(SYS_s390_guarded_storage, int command,
struct gs_cb *gs_cb);
Note: glibc provides no wrapper for s390_guarded_storage(), necessitating the use of syscall(2).
Системный вызов 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 на s390.
Linux 4.12. System z14.
Описание средства защищённого хранения вместе с инструкциями, блоком управления защищённым хранением, структурой списка событий защищённого хранения доступно в «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.
Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| 2 мая 2024 г. | Справочные страницы Linux 6.9.1 |