S390_GUARDED_STORAGE(2) | System Calls Manual | S390_GUARDED_STORAGE(2) |
s390_guarded_storage - operations with z/Architecture guarded storage facility
#include <asm/guarded_storage.h>
int s390_guarded_storage(int command, struct gs_cb *gs_cb);
The s390_guarded_storage() system call enables the use of the Guarded Storage Facility (a z/Architecture-specific feature) for user-space processes.
The guarded storage facility is a hardware feature that allows marking up to 64 memory regions (as of z14) as guarded; reading a pointer with a newly introduced "Load Guarded" (LGG) or "Load Logical and Shift Guarded" (LLGFSG) instructions will cause a range check on the loaded value and invoke a (previously set up) user-space handler if one of the guarded regions is affected.
The command argument indicates which function to perform. The following commands are supported:
The gs_cb argument specifies the address of a guarded storage control block structure and is currently used only by the GS_SET_BC_CB command; all other aforementioned commands ignore this argument.
On success, the return value of s390_guarded_storage() is 0.
On error, -1 is returned, and errno is set appropriately.
This system call is available since Linux 4.12.
This Linux-specific system call is available only on the s390 architecture.
The guarded storage facility is available beginning with System z14.
Glibc does not provide a wrapper for this system call, use syscall(2) to call it.
The description of the guarded storage facility along with related instructions and Guarded Storage Control Block and Guarded Storage Event Parameter List structure layouts is available in "z/Architecture Principles of Operations" beginning from the twelfth edition.
The gs_cb structure has a field gsepla (Guarded Storage Event Parameter List Address), which is a user-space pointer to a Guarded Storage Event Parameter List structure (that contains the address of the aforementioned event handler in the gseha field), and its layout is available as a gs_epl structure type definition in the asm/guarded_storage.h header.
This page is part of release 5.10 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
2019-03-06 | Linux Programmer's Manual |