fix invalid usage of mcontext_t in powerpc signal.h
[musl] / arch / powerpc / bits / signal.h
1 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
2  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
3
4 typedef unsigned long gregset_t[48];
5
6 typedef struct {
7         double fpregs[32];
8         double fpscr;
9         unsigned _pad[2];
10 } fpregset_t;
11
12 typedef struct {
13         unsigned vrregs[32][4];
14         unsigned vrsave;
15         unsigned _pad[2];
16         unsigned vscr;
17 } vrregset_t;
18
19 typedef struct {
20         gregset_t gregs;
21         fpregset_t fpregs;
22         vrregset_t vrregs __attribute__((__aligned__(16)));
23 } mcontext_t;
24
25 typedef struct __ucontext {
26         unsigned long uc_flags;
27         struct __ucontext *uc_link;
28         stack_t uc_stack;
29         int uc_pad[7];
30         mcontext_t *uc_regs;
31         
32         sigset_t uc_sigmask;
33         
34         int             uc_maskext[30];
35         int             uc_pad2[3];
36         
37         mcontext_t uc_mcontext;
38         char uc_reg_space[sizeof(mcontext_t) + 12];
39 } ucontext_t;
40
41 #define SA_NOCLDSTOP  1U
42 #define SA_NOCLDWAIT  2U
43 #define SA_SIGINFO    4U
44 #define SA_ONSTACK    0x08000000U
45 #define SA_RESTART    0x10000000U
46 #define SA_NODEFER    0x40000000U
47 #define SA_RESETHAND  0x80000000U
48 #define SA_RESTORER   0x04000000U
49
50 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
51
52 struct sigcontext
53 {
54         unsigned long _unused[4];
55         int signal;
56         unsigned long handler;
57         unsigned long oldmask;
58         void *regs; /* originally struct pt_regs _user *regs,
59                         pt_regs is defined in arch/powerpc/include/asm/ptrace.h */
60         gregset_t gp_regs;
61         fpregset_t fp_regs;
62         vrregset_t *v_regs;
63         long vmx_reserve[33+33+32+1]; /* 33=34 for ppc64 */
64 };
65 #define NSIG      64
66 #endif
67
68 #endif
69
70 #define SIGHUP    1
71 #define SIGINT    2
72 #define SIGQUIT   3
73 #define SIGILL    4
74 #define SIGTRAP   5
75 #define SIGABRT   6
76 #define SIGIOT    6
77 #define SIGBUS    7
78 #define SIGFPE    8
79 #define SIGKILL   9
80 #define SIGUSR1   10
81 #define SIGSEGV   11
82 #define SIGUSR2   12
83 #define SIGPIPE   13
84 #define SIGALRM   14
85 #define SIGTERM   15
86 #define SIGSTKFLT 16
87 #define SIGCHLD   17
88 #define SIGCONT   18
89 #define SIGSTOP   19
90 #define SIGTSTP   20
91 #define SIGTTIN   21
92 #define SIGTTOU   22
93 #define SIGURG    23
94 #define SIGXCPU   24
95 #define SIGXFSZ   25
96 #define SIGVTALRM 26
97 #define SIGPROF   27
98 #define SIGWINCH  28
99 #define SIGIO     29
100 #define SIGPOLL   29
101 #define SIGPWR    30
102 #define SIGSYS    31
103 #define SIGUNUSED SIGSYS