[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.117.72.244: ~ $
#ifndef _ASM_X86_SIGCONTEXT_H
#define _ASM_X86_SIGCONTEXT_H


#include <linux/types.h>

#define FP_XSTATE_MAGIC1	0x46505853U
#define FP_XSTATE_MAGIC2	0x46505845U
#define FP_XSTATE_MAGIC2_SIZE	sizeof(FP_XSTATE_MAGIC2)

/*
 * bytes 464..511 in the current 512byte layout of fxsave/fxrstor frame
 * are reserved for SW usage. On cpu's supporting xsave/xrstor, these bytes
 * are used to extended the fpstate pointer in the sigcontext, which now
 * includes the extended state information along with fpstate information.
 *
 * Presence of FP_XSTATE_MAGIC1 at the beginning of this SW reserved
 * area and FP_XSTATE_MAGIC2 at the end of memory layout
 * (extended_size - FP_XSTATE_MAGIC2_SIZE) indicates the presence of the
 * extended state information in the memory layout pointed by the fpstate
 * pointer in sigcontext.
 */
struct _fpx_sw_bytes {
	__u32 magic1;		/* FP_XSTATE_MAGIC1 */
	__u32 extended_size;	/* total size of the layout referred by
				 * fpstate pointer in the sigcontext.
				 */
	__u64 xstate_bv;
				/* feature bit mask (including fp/sse/extended
				 * state) that is present in the memory
				 * layout.
				 */
	__u32 xstate_size;	/* actual xsave state size, based on the
				 * features saved in the layout.
				 * 'extended_size' will be greater than
				 * 'xstate_size'.
				 */
	__u32 padding[7];	/*  for future use. */
};

#ifdef __i386__
/*
 * 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	padding1[44];

	union {
		unsigned long	padding2[12];
		struct _fpx_sw_bytes sw_reserved; /* represents the extended
						   * state info */
	};
};

#define X86_FXSR_MAGIC		0x0000

/*
 * User-space might still rely on the old definition:
 */
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 *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[12];
	union {
		__u32	reserved3[12];
		struct _fpx_sw_bytes sw_reserved; /* represents the extended
						   * state information */
	};
};

/*
 * User-space might still rely on the old definition:
 */
struct sigcontext {
	__u64 r8;
	__u64 r9;
	__u64 r10;
	__u64 r11;
	__u64 r12;
	__u64 r13;
	__u64 r14;
	__u64 r15;
	__u64 rdi;
	__u64 rsi;
	__u64 rbp;
	__u64 rbx;
	__u64 rdx;
	__u64 rax;
	__u64 rcx;
	__u64 rsp;
	__u64 rip;
	__u64 eflags;		/* RFLAGS */
	__u16 cs;
	__u16 gs;
	__u16 fs;
	__u16 __pad0;
	__u64 err;
	__u64 trapno;
	__u64 oldmask;
	__u64 cr2;
	struct _fpstate *fpstate;	/* zero when no FPU context */
#ifdef __ILP32__
	__u32 __fpstate_pad;
#endif
	__u64 reserved1[8];
};

#endif /* !__i386__ */

struct _xsave_hdr {
	__u64 xstate_bv;
	__u64 reserved1[2];
	__u64 reserved2[5];
};

struct _ymmh_state {
	/* 16 * 16 bytes for each YMMH-reg */
	__u32 ymmh_space[64];
};

/*
 * Extended state pointed by the fpstate pointer in the sigcontext.
 * In addition to the fpstate, information encoded in the xstate_hdr
 * indicates the presence of other extended state information
 * supported by the processor and OS.
 */
struct _xstate {
	struct _fpstate fpstate;
	struct _xsave_hdr xstate_hdr;
	struct _ymmh_state ymmh;
	/* new processor state extensions go here */
};

#endif /* _ASM_X86_SIGCONTEXT_H */

Filemanager

Name Type Size Permission Actions
a.out.h File 693 B 0644
auxvec.h File 483 B 0644
bitsperlong.h File 229 B 0644
boot.h File 260 B 0644
bootparam.h File 4.39 KB 0644
bpf_perf_event.h File 40 B 0644
byteorder.h File 137 B 0644
debugreg.h File 3.15 KB 0644
e820.h File 2.63 KB 0644
errno.h File 31 B 0644
fcntl.h File 31 B 0644
hw_breakpoint.h File 6 B 0644
hyperv.h File 12.98 KB 0644
ioctl.h File 31 B 0644
ioctls.h File 32 B 0644
ipcbuf.h File 32 B 0644
ist.h File 790 B 0644
kvm.h File 6.81 KB 0644
kvm_para.h File 2.8 KB 0644
kvm_perf.h File 325 B 0644
ldt.h File 963 B 0644
mce.h File 1.22 KB 0644
mman.h File 1.01 KB 0644
msgbuf.h File 32 B 0644
msr-index.h File 29.04 KB 0644
msr.h File 283 B 0644
mtrr.h File 4.06 KB 0644
param.h File 31 B 0644
perf_regs.h File 1.24 KB 0644
poll.h File 30 B 0644
posix_types.h File 161 B 0644
posix_types_32.h File 702 B 0644
posix_types_64.h File 546 B 0644
posix_types_x32.h File 518 B 0644
prctl.h File 190 B 0644
processor-flags.h File 6.32 KB 0644
ptrace-abi.h File 1.76 KB 0644
ptrace.h File 1.17 KB 0644
resource.h File 34 B 0644
sembuf.h File 699 B 0644
setup.h File 6 B 0644
shmbuf.h File 32 B 0644
sigcontext.h File 5.11 KB 0644
sigcontext32.h File 1.64 KB 0644
siginfo.h File 431 B 0644
signal.h File 2.77 KB 0644
socket.h File 32 B 0644
sockios.h File 33 B 0644
stat.h File 2.89 KB 0644
statfs.h File 353 B 0644
svm.h File 5.09 KB 0644
swab.h File 661 B 0644
termbits.h File 34 B 0644
termios.h File 33 B 0644
types.h File 113 B 0644
ucontext.h File 339 B 0644
unistd.h File 296 B 0644
unistd_32.h File 9.37 KB 0644
unistd_64.h File 8.59 KB 0644
unistd_x32.h File 15.12 KB 0644
vm86.h File 2.98 KB 0644
vmx.h File 6.53 KB 0644
vsyscall.h File 375 B 0644