master
 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__
13struct 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
21struct ucontext {
22	unsigned long	uc_flags;
23	struct ucontext *uc_link;
24	stack_t		uc_stack;
25#ifndef __powerpc64__
26	int		uc_pad[7];
27	struct mcontext	*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 */