1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 3 * S390 version 4 * 5 * Derived from "include/asm-i386/ucontext.h" 6 */ 7 8 #ifndef _ASM_S390_UCONTEXT_H 9 #define _ASM_S390_UCONTEXT_H 10 11 #define UC_GPRS_HIGH 1 /* uc_mcontext_ext has valid high gprs */ 12 #define UC_VXRS 2 /* uc_mcontext_ext has valid vector regs */ 13 14 /* 15 * The struct ucontext_extended describes how the registers are stored 16 * on a rt signal frame. Please note that the structure is not fixed, 17 * if new CPU registers are added to the user state the size of the 18 * struct ucontext_extended will increase. 19 */ 20 struct ucontext_extended { 21 unsigned long uc_flags; 22 struct ucontext *uc_link; 23 stack_t uc_stack; 24 _sigregs uc_mcontext; 25 sigset_t uc_sigmask; 26 /* Allow for uc_sigmask growth. Glibc uses a 1024-bit sigset_t. */ 27 unsigned char __unused[128 - sizeof(sigset_t)]; 28 _sigregs_ext uc_mcontext_ext; 29 }; 30 31 struct ucontext { 32 unsigned long uc_flags; 33 struct ucontext *uc_link; 34 stack_t uc_stack; 35 _sigregs uc_mcontext; 36 sigset_t uc_sigmask; 37 /* Allow for uc_sigmask growth. Glibc uses a 1024-bit sigset_t. */ 38 unsigned char __unused[128 - sizeof(sigset_t)]; 39 }; 40 41 #endif /* !_ASM_S390_UCONTEXT_H */ 42