Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / arch / powerpc / include / uapi / asm / ucontext.h
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 */