x86: merge sigcontext_32/64.h
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
be7baf80a6
commit
77129c5e3d
4 changed files with 137 additions and 154 deletions
|
@ -23,8 +23,6 @@ unifdef-y += posix_types_64.h
|
||||||
unifdef-y += ptrace.h
|
unifdef-y += ptrace.h
|
||||||
unifdef-y += setup_32.h
|
unifdef-y += setup_32.h
|
||||||
unifdef-y += setup_64.h
|
unifdef-y += setup_64.h
|
||||||
unifdef-y += sigcontext_32.h
|
|
||||||
unifdef-y += sigcontext_64.h
|
|
||||||
unifdef-y += signal_32.h
|
unifdef-y += signal_32.h
|
||||||
unifdef-y += signal_64.h
|
unifdef-y += signal_64.h
|
||||||
unifdef-y += unistd_32.h
|
unifdef-y += unistd_32.h
|
||||||
|
|
|
@ -1,13 +1,138 @@
|
||||||
#ifdef __KERNEL__
|
#ifndef _ASM_X86_SIGCONTEXT_H
|
||||||
# ifdef CONFIG_X86_32
|
#define _ASM_X86_SIGCONTEXT_H
|
||||||
# include "sigcontext_32.h"
|
|
||||||
# else
|
#include <linux/compiler.h>
|
||||||
# include "sigcontext_64.h"
|
#include <asm/types.h>
|
||||||
# endif
|
|
||||||
#else
|
#ifdef __i386__
|
||||||
# ifdef __i386__
|
/*
|
||||||
# include "sigcontext_32.h"
|
* As documented in the iBCS2 standard..
|
||||||
# else
|
*
|
||||||
# include "sigcontext_64.h"
|
* The first part of "struct _fpstate" is just the normal i387
|
||||||
# endif
|
* hardware setup, the extra "status" word is used to save the
|
||||||
|
* coprocessor status word before entering the handler.
|
||||||
|
*
|
||||||
|
* Pentium III FXSR, SSE support
|
||||||
|
* Gareth Hughes <gareth@valinux.com>, May 2000
|
||||||
|
*
|
||||||
|
* The FPU state data structure has had to grow to accommodate the
|
||||||
|
* extended FPU state required by the Streaming SIMD Extensions.
|
||||||
|
* There is no documented standard to accomplish this at the moment.
|
||||||
|
*/
|
||||||
|
struct _fpreg {
|
||||||
|
unsigned short significand[4];
|
||||||
|
unsigned short exponent;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _fpxreg {
|
||||||
|
unsigned short significand[4];
|
||||||
|
unsigned short exponent;
|
||||||
|
unsigned short padding[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _xmmreg {
|
||||||
|
unsigned long element[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _fpstate {
|
||||||
|
/* Regular FPU environment */
|
||||||
|
unsigned long cw;
|
||||||
|
unsigned long sw;
|
||||||
|
unsigned long tag;
|
||||||
|
unsigned long ipoff;
|
||||||
|
unsigned long cssel;
|
||||||
|
unsigned long dataoff;
|
||||||
|
unsigned long datasel;
|
||||||
|
struct _fpreg _st[8];
|
||||||
|
unsigned short status;
|
||||||
|
unsigned short magic; /* 0xffff = regular FPU data only */
|
||||||
|
|
||||||
|
/* FXSR FPU environment */
|
||||||
|
unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */
|
||||||
|
unsigned long mxcsr;
|
||||||
|
unsigned long reserved;
|
||||||
|
struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */
|
||||||
|
struct _xmmreg _xmm[8];
|
||||||
|
unsigned long padding[56];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define X86_FXSR_MAGIC 0x0000
|
||||||
|
|
||||||
|
struct sigcontext {
|
||||||
|
unsigned short gs, __gsh;
|
||||||
|
unsigned short fs, __fsh;
|
||||||
|
unsigned short es, __esh;
|
||||||
|
unsigned short ds, __dsh;
|
||||||
|
unsigned long edi;
|
||||||
|
unsigned long esi;
|
||||||
|
unsigned long ebp;
|
||||||
|
unsigned long esp;
|
||||||
|
unsigned long ebx;
|
||||||
|
unsigned long edx;
|
||||||
|
unsigned long ecx;
|
||||||
|
unsigned long eax;
|
||||||
|
unsigned long trapno;
|
||||||
|
unsigned long err;
|
||||||
|
unsigned long eip;
|
||||||
|
unsigned short cs, __csh;
|
||||||
|
unsigned long eflags;
|
||||||
|
unsigned long esp_at_signal;
|
||||||
|
unsigned short ss, __ssh;
|
||||||
|
struct _fpstate __user * fpstate;
|
||||||
|
unsigned long oldmask;
|
||||||
|
unsigned long cr2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* __i386__ */
|
||||||
|
|
||||||
|
/* FXSAVE frame */
|
||||||
|
/* Note: reserved1/2 may someday contain valuable data. Always save/restore
|
||||||
|
them when you change signal frames. */
|
||||||
|
struct _fpstate {
|
||||||
|
__u16 cwd;
|
||||||
|
__u16 swd;
|
||||||
|
__u16 twd; /* Note this is not the same as the 32bit/x87/FSAVE twd */
|
||||||
|
__u16 fop;
|
||||||
|
__u64 rip;
|
||||||
|
__u64 rdp;
|
||||||
|
__u32 mxcsr;
|
||||||
|
__u32 mxcsr_mask;
|
||||||
|
__u32 st_space[32]; /* 8*16 bytes for each FP-reg */
|
||||||
|
__u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg */
|
||||||
|
__u32 reserved2[24];
|
||||||
|
};
|
||||||
|
|
||||||
|
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 rdi;
|
||||||
|
unsigned long rsi;
|
||||||
|
unsigned long rbp;
|
||||||
|
unsigned long rbx;
|
||||||
|
unsigned long rdx;
|
||||||
|
unsigned long rax;
|
||||||
|
unsigned long rcx;
|
||||||
|
unsigned long rsp;
|
||||||
|
unsigned long rip;
|
||||||
|
unsigned long eflags; /* RFLAGS */
|
||||||
|
unsigned short cs;
|
||||||
|
unsigned short gs;
|
||||||
|
unsigned short fs;
|
||||||
|
unsigned short __pad0;
|
||||||
|
unsigned long err;
|
||||||
|
unsigned long trapno;
|
||||||
|
unsigned long oldmask;
|
||||||
|
unsigned long cr2;
|
||||||
|
struct _fpstate __user *fpstate; /* zero when no FPU context */
|
||||||
|
unsigned long reserved1[8];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* !__i386__ */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
#ifndef _ASMi386_SIGCONTEXT_H
|
|
||||||
#define _ASMi386_SIGCONTEXT_H
|
|
||||||
|
|
||||||
#include <linux/compiler.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* As documented in the iBCS2 standard..
|
|
||||||
*
|
|
||||||
* The first part of "struct _fpstate" is just the normal i387
|
|
||||||
* hardware setup, the extra "status" word is used to save the
|
|
||||||
* coprocessor status word before entering the handler.
|
|
||||||
*
|
|
||||||
* Pentium III FXSR, SSE support
|
|
||||||
* Gareth Hughes <gareth@valinux.com>, May 2000
|
|
||||||
*
|
|
||||||
* The FPU state data structure has had to grow to accommodate the
|
|
||||||
* extended FPU state required by the Streaming SIMD Extensions.
|
|
||||||
* There is no documented standard to accomplish this at the moment.
|
|
||||||
*/
|
|
||||||
struct _fpreg {
|
|
||||||
unsigned short significand[4];
|
|
||||||
unsigned short exponent;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _fpxreg {
|
|
||||||
unsigned short significand[4];
|
|
||||||
unsigned short exponent;
|
|
||||||
unsigned short padding[3];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _xmmreg {
|
|
||||||
unsigned long element[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _fpstate {
|
|
||||||
/* Regular FPU environment */
|
|
||||||
unsigned long cw;
|
|
||||||
unsigned long sw;
|
|
||||||
unsigned long tag;
|
|
||||||
unsigned long ipoff;
|
|
||||||
unsigned long cssel;
|
|
||||||
unsigned long dataoff;
|
|
||||||
unsigned long datasel;
|
|
||||||
struct _fpreg _st[8];
|
|
||||||
unsigned short status;
|
|
||||||
unsigned short magic; /* 0xffff = regular FPU data only */
|
|
||||||
|
|
||||||
/* FXSR FPU environment */
|
|
||||||
unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */
|
|
||||||
unsigned long mxcsr;
|
|
||||||
unsigned long reserved;
|
|
||||||
struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */
|
|
||||||
struct _xmmreg _xmm[8];
|
|
||||||
unsigned long padding[56];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define X86_FXSR_MAGIC 0x0000
|
|
||||||
|
|
||||||
struct sigcontext {
|
|
||||||
unsigned short gs, __gsh;
|
|
||||||
unsigned short fs, __fsh;
|
|
||||||
unsigned short es, __esh;
|
|
||||||
unsigned short ds, __dsh;
|
|
||||||
unsigned long edi;
|
|
||||||
unsigned long esi;
|
|
||||||
unsigned long ebp;
|
|
||||||
unsigned long esp;
|
|
||||||
unsigned long ebx;
|
|
||||||
unsigned long edx;
|
|
||||||
unsigned long ecx;
|
|
||||||
unsigned long eax;
|
|
||||||
unsigned long trapno;
|
|
||||||
unsigned long err;
|
|
||||||
unsigned long eip;
|
|
||||||
unsigned short cs, __csh;
|
|
||||||
unsigned long eflags;
|
|
||||||
unsigned long esp_at_signal;
|
|
||||||
unsigned short ss, __ssh;
|
|
||||||
struct _fpstate __user * fpstate;
|
|
||||||
unsigned long oldmask;
|
|
||||||
unsigned long cr2;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,55 +0,0 @@
|
||||||
#ifndef _ASM_X86_64_SIGCONTEXT_H
|
|
||||||
#define _ASM_X86_64_SIGCONTEXT_H
|
|
||||||
|
|
||||||
#include <asm/types.h>
|
|
||||||
#include <linux/compiler.h>
|
|
||||||
|
|
||||||
/* FXSAVE frame */
|
|
||||||
/* Note: reserved1/2 may someday contain valuable data. Always save/restore
|
|
||||||
them when you change signal frames. */
|
|
||||||
struct _fpstate {
|
|
||||||
__u16 cwd;
|
|
||||||
__u16 swd;
|
|
||||||
__u16 twd; /* Note this is not the same as the 32bit/x87/FSAVE twd */
|
|
||||||
__u16 fop;
|
|
||||||
__u64 rip;
|
|
||||||
__u64 rdp;
|
|
||||||
__u32 mxcsr;
|
|
||||||
__u32 mxcsr_mask;
|
|
||||||
__u32 st_space[32]; /* 8*16 bytes for each FP-reg */
|
|
||||||
__u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg */
|
|
||||||
__u32 reserved2[24];
|
|
||||||
};
|
|
||||||
|
|
||||||
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 rdi;
|
|
||||||
unsigned long rsi;
|
|
||||||
unsigned long rbp;
|
|
||||||
unsigned long rbx;
|
|
||||||
unsigned long rdx;
|
|
||||||
unsigned long rax;
|
|
||||||
unsigned long rcx;
|
|
||||||
unsigned long rsp;
|
|
||||||
unsigned long rip;
|
|
||||||
unsigned long eflags; /* RFLAGS */
|
|
||||||
unsigned short cs;
|
|
||||||
unsigned short gs;
|
|
||||||
unsigned short fs;
|
|
||||||
unsigned short __pad0;
|
|
||||||
unsigned long err;
|
|
||||||
unsigned long trapno;
|
|
||||||
unsigned long oldmask;
|
|
||||||
unsigned long cr2;
|
|
||||||
struct _fpstate __user *fpstate; /* zero when no FPU context */
|
|
||||||
unsigned long reserved1[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in a new issue