/* * This header is culled from various kernel headers for arm. * Glibc and the kernel don't agree on the layout for ucontext_t. */ #ifndef ARM_UCONTEXT_H #define ARM_UCONTEXT_H typedef unsigned long my_sigset_t; typedef struct my_sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } my_stack_t; struct my_sigcontext { unsigned long trap_no; unsigned long error_code; unsigned long oldmask; unsigned long arm_r0; unsigned long arm_r1; unsigned long arm_r2; unsigned long arm_r3; unsigned long arm_r4; unsigned long arm_r5; unsigned long arm_r6; unsigned long arm_r7; unsigned long arm_r8; unsigned long arm_r9; unsigned long arm_r10; unsigned long arm_fp; unsigned long arm_ip; unsigned long arm_sp; unsigned long arm_lr; unsigned long arm_pc; unsigned long arm_cpsr; unsigned long fault_address; }; struct my_ucontext { unsigned long uc_flags; struct my_ucontext *uc_link; my_stack_t uc_stack; struct my_sigcontext uc_mcontext; my_sigset_t uc_sigmask; /* mask last for extensibility */ }; typedef struct my_ucontext my_ucontext_t; #define ucontext_t my_ucontext_t #endif /* ARM_UCONTEXT_H */