diff options
Diffstat (limited to '9/platforms/android-21/arch-arm64/usr/include/sys/ucontext.h')
-rw-r--r-- | 9/platforms/android-21/arch-arm64/usr/include/sys/ucontext.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/9/platforms/android-21/arch-arm64/usr/include/sys/ucontext.h b/9/platforms/android-21/arch-arm64/usr/include/sys/ucontext.h index f62380d..dd2a0bb 100644 --- a/9/platforms/android-21/arch-arm64/usr/include/sys/ucontext.h +++ b/9/platforms/android-21/arch-arm64/usr/include/sys/ucontext.h @@ -68,11 +68,9 @@ typedef struct ucontext { struct ucontext* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; + sigset_t uc_sigmask; // Android has a wrong (smaller) sigset_t on ARM. - union { - sigset_t bionic; - uint32_t kernel[2]; - } uc_sigmask; + uint32_t __padding_rt_sigset; // The kernel adds extra padding after uc_sigmask to match glibc sigset_t on ARM. char __padding[120]; unsigned long uc_regspace[128] __attribute__((__aligned__(8))); @@ -80,6 +78,10 @@ typedef struct ucontext { #elif defined(__aarch64__) +#define NGREG 34 /* x0..x30 + sp + pc + pstate */ +typedef unsigned long greg_t; +typedef greg_t gregset_t[NGREG]; + #include <asm/sigcontext.h> typedef struct sigcontext mcontext_t; @@ -152,11 +154,9 @@ typedef struct ucontext { struct ucontext* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; + sigset_t uc_sigmask; // Android has a wrong (smaller) sigset_t on x86. - union { - sigset_t bionic; - uint32_t kernel[2]; - } uc_sigmask; + uint32_t __padding_rt_sigset; struct _libc_fpstate __fpregs_mem; } ucontext_t; |