2008-10-22 22:26:29 -07:00
# ifndef _ASM_X86_SIGCONTEXT_H
# define _ASM_X86_SIGCONTEXT_H
2007-10-23 22:37:24 +02:00
2012-12-14 22:37:13 +00:00
# include <uapi/asm/sigcontext.h>
2008-07-29 10:29:24 -07:00
2007-10-23 22:37:24 +02:00
# ifdef __i386__
struct sigcontext {
unsigned short gs , __gsh ;
unsigned short fs , __fsh ;
unsigned short es , __esh ;
unsigned short ds , __dsh ;
2008-01-30 13:30:56 +01:00
unsigned long di ;
unsigned long si ;
unsigned long bp ;
unsigned long sp ;
unsigned long bx ;
unsigned long dx ;
unsigned long cx ;
unsigned long ax ;
2007-10-23 22:37:24 +02:00
unsigned long trapno ;
unsigned long err ;
2008-01-30 13:30:56 +01:00
unsigned long ip ;
2007-10-23 22:37:24 +02:00
unsigned short cs , __csh ;
2008-01-30 13:30:56 +01:00
unsigned long flags ;
unsigned long sp_at_signal ;
2007-10-23 22:37:24 +02:00
unsigned short ss , __ssh ;
2008-07-29 10:29:24 -07:00
/*
* 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
2009-12-04 15:47:01 -05:00
* of extended memory layout . See comments at the definition of
2008-07-29 10:29:24 -07:00
* ( struct _fpx_sw_bytes )
*/
void __user * fpstate ; /* zero when no FPU/extended context */
2007-10-23 22:37:24 +02:00
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 ;
2008-01-30 13:30:56 +01:00
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 ;
2007-10-23 22:37:24 +02:00
unsigned short cs ;
2015-03-12 13:57:52 -07:00
unsigned short __pad2 ; /* Was called gs, but was always zero. */
unsigned short __pad1 ; /* Was called fs, but was always zero. */
2015-03-12 13:57:51 -07:00
unsigned short ss ;
2007-10-23 22:37:24 +02:00
unsigned long err ;
unsigned long trapno ;
unsigned long oldmask ;
unsigned long cr2 ;
2008-07-29 10:29:24 -07:00
/*
* 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
2009-12-04 15:47:01 -05:00
* of extended memory layout . See comments at the definition of
2008-07-29 10:29:24 -07:00
* ( struct _fpx_sw_bytes )
*/
void __user * fpstate ; /* zero when no FPU/extended context */
2007-10-23 22:37:24 +02:00
unsigned long reserved1 [ 8 ] ;
} ;
# endif /* !__i386__ */
2008-10-22 22:26:29 -07:00
# endif /* _ASM_X86_SIGCONTEXT_H */