#ifndef _ASM_X86_SIGCONTEXT_H #define _ASM_X86_SIGCONTEXT_H #include <uapi/asm/sigcontext.h> #ifdef __i386__ struct sigcontext { unsigned short gs, __gsh; unsigned short fs, __fsh; unsigned short es, __esh; unsigned short ds, __dsh; unsigned long di; unsigned long si; unsigned long bp; unsigned long sp; unsigned long bx; unsigned long dx; unsigned long cx; unsigned long ax; unsigned long trapno; unsigned long err; unsigned long ip; unsigned short cs, __csh; unsigned long flags; unsigned long sp_at_signal; unsigned short ss, __ssh; /* * fpstate is really (struct _fpstate *) or (struct _xstate *) * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end * of extended memory layout. See comments at the definition of * (struct _fpx_sw_bytes) */ void __user *fpstate; /* zero when no FPU/extended context */ unsigned long oldmask; unsigned long cr2; }; #else /* __i386__ */ struct sigcontext { unsigned long r8; unsigned long r9; unsigned long r10; unsigned long r11; unsigned long r12; unsigned long r13; unsigned long r14; unsigned long r15; unsigned long di; unsigned long si; unsigned long bp; unsigned long bx; unsigned long dx; unsigned long ax; unsigned long cx; unsigned long sp; unsigned long ip; unsigned long flags; unsigned short cs; unsigned short __pad2; /* Was called gs, but was always zero. */ unsigned short __pad1; /* Was called fs, but was always zero. */ unsigned short ss; unsigned long err; unsigned long trapno; unsigned long oldmask; unsigned long cr2; /* * fpstate is really (struct _fpstate *) or (struct _xstate *) * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end * of extended memory layout. See comments at the definition of * (struct _fpx_sw_bytes) */ void __user *fpstate; /* zero when no FPU/extended context */ unsigned long reserved1[8]; }; #endif /* !__i386__ */ #endif /* _ASM_X86_SIGCONTEXT_H */