Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _ASM_POWERPC_UCONTEXT_H
0003 #define _ASM_POWERPC_UCONTEXT_H
0004 
0005 #ifdef __powerpc64__
0006 #include <asm/sigcontext.h>
0007 #else
0008 #include <asm/elf.h>
0009 #endif
0010 #include <asm/signal.h>
0011 
0012 #ifndef __powerpc64__
0013 struct mcontext {
0014     elf_gregset_t   mc_gregs;
0015     elf_fpregset_t  mc_fregs;
0016     unsigned long   mc_pad[2];
0017     elf_vrregset_t  mc_vregs __attribute__((__aligned__(16)));
0018 };
0019 #endif
0020 
0021 struct ucontext {
0022     unsigned long   uc_flags;
0023     struct ucontext __user *uc_link;
0024     stack_t     uc_stack;
0025 #ifndef __powerpc64__
0026     int     uc_pad[7];
0027     struct mcontext __user *uc_regs;/* points to uc_mcontext field */
0028 #endif
0029     sigset_t    uc_sigmask;
0030     /* glibc has 1024-bit signal masks, ours are 64-bit */
0031 #ifdef __powerpc64__
0032     sigset_t    __unused[15];   /* Allow for uc_sigmask growth */
0033     struct sigcontext uc_mcontext;  /* last for extensibility */
0034 #else
0035     int     uc_maskext[30];
0036     int     uc_pad2[3];
0037     struct mcontext uc_mcontext;
0038 #endif
0039 };
0040 
0041 #endif /* _ASM_POWERPC_UCONTEXT_H */