1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _ASM_POWERPC_UCONTEXT_H 3 #define _ASM_POWERPC_UCONTEXT_H 4 5 #ifdef __powerpc64__ 6 #include <asm/sigcontext.h> 7 #else 8 #include <asm/elf.h> 9 #endif 10 #include <asm/signal.h> 11 12 #ifndef __powerpc64__ 13 struct mcontext { 14 elf_gregset_t mc_gregs; 15 elf_fpregset_t mc_fregs; 16 unsigned long mc_pad[2]; 17 elf_vrregset_t mc_vregs __attribute__((__aligned__(16))); 18 }; 19 #endif 20 21 struct ucontext { 22 unsigned long uc_flags; 23 struct ucontext __user *uc_link; 24 stack_t uc_stack; 25 #ifndef __powerpc64__ 26 int uc_pad[7]; 27 struct mcontext __user *uc_regs;/* points to uc_mcontext field */ 28 #endif 29 sigset_t uc_sigmask; 30 /* glibc has 1024-bit signal masks, ours are 64-bit */ 31 #ifdef __powerpc64__ 32 sigset_t __unused[15]; /* Allow for uc_sigmask growth */ 33 struct sigcontext uc_mcontext; /* last for extensibility */ 34 #else 35 int uc_maskext[30]; 36 int uc_pad2[3]; 37 struct mcontext uc_mcontext; 38 #endif 39 }; 40 41 #endif /* _ASM_POWERPC_UCONTEXT_H */ 42