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