blob: 6f14a96d4985573ddc07211ed2ddad3920e915f3 [file] [log] [blame]
Greg Kroah-Hartman6f52b162017-11-01 15:08:43 +01001/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
Stephen Rothwell5adb83c2005-11-03 16:59:17 +11002#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 __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 */