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