X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=arch%2Fpowerpc%2Fbits%2Fsignal.h;h=81012d5b7ea8badadfeec7f7906bf00304c3786e;hp=d633694dcc7151f6c4462a2ecb158ef33e62f583;hb=a8da6c2f287037cbacc65578a268f355760eaf8e;hpb=8bb181622222f2ee3462c8b021bcae4fcdbbd37a diff --git a/arch/powerpc/bits/signal.h b/arch/powerpc/bits/signal.h index d633694d..81012d5b 100644 --- a/arch/powerpc/bits/signal.h +++ b/arch/powerpc/bits/signal.h @@ -1,7 +1,9 @@ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -typedef unsigned long gregset_t[48]; +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + +typedef unsigned long greg_t, gregset_t[48]; typedef struct { double fpregs[32]; @@ -16,26 +18,46 @@ typedef struct { unsigned vscr; } vrregset_t; +struct sigcontext +{ + unsigned long _unused[4]; + int signal; + unsigned long handler; + unsigned long oldmask; + void *regs; +}; + typedef struct { gregset_t gregs; fpregset_t fpregs; - vrregset_t vrregs __attribute__((__aligned__(16))); + vrregset_t vrregs +#ifdef __GNUC__ + __attribute__((__aligned__(16))) +#endif + ; +} mcontext_t; + +#else + +typedef struct { + long __regs[48+68+4*32+4] +#ifdef __GNUC__ + __attribute__((__aligned__(16))) +#endif + ; } mcontext_t; +#endif + typedef struct __ucontext { unsigned long uc_flags; struct __ucontext *uc_link; stack_t uc_stack; int uc_pad[7]; - struct mcontext_t *uc_regs; - + mcontext_t *uc_regs; sigset_t uc_sigmask; - - int uc_maskext[30]; int uc_pad2[3]; - mcontext_t uc_mcontext; - char uc_reg_space[sizeof(mcontext_t) + 12]; } ucontext_t; #define SA_NOCLDSTOP 1U @@ -47,24 +69,6 @@ typedef struct __ucontext { #define SA_RESETHAND 0x80000000U #define SA_RESTORER 0x04000000U -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) - -struct sigcontext -{ - unsigned long _unused[4]; - int signal; - unsigned long handler; - unsigned long oldmask; - void *regs; /* originally struct pt_regs _user *regs, - pt_regs is defined in arch/powerpc/include/asm/ptrace.h */ - gregset_t gp_regs; - fpregset_t fp_regs; - vrregset_t *v_regs; - long vmx_reserve[33+33+32+1]; /* 33=34 for ppc64 */ -}; -#define NSIG 64 -#endif - #endif #define SIGHUP 1 @@ -101,3 +105,5 @@ struct sigcontext #define SIGPWR 30 #define SIGSYS 31 #define SIGUNUSED SIGSYS + +#define _NSIG 65