3 #include <asm/ptrace.h>
5 #include <linux/stddef.h>
8 #define DEFINE(sym, val) \
9 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
11 #define DEFINE_LONGS(sym, val) \
12 asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long)))
14 #define OFFSET(sym, str, mem) \
15 DEFINE(sym, offsetof(struct str, mem));
19 OFFSET(HOST_SC_IP
, sigcontext
, eip
);
20 OFFSET(HOST_SC_SP
, sigcontext
, esp
);
21 OFFSET(HOST_SC_FS
, sigcontext
, fs
);
22 OFFSET(HOST_SC_GS
, sigcontext
, gs
);
23 OFFSET(HOST_SC_DS
, sigcontext
, ds
);
24 OFFSET(HOST_SC_ES
, sigcontext
, es
);
25 OFFSET(HOST_SC_SS
, sigcontext
, ss
);
26 OFFSET(HOST_SC_CS
, sigcontext
, cs
);
27 OFFSET(HOST_SC_EFLAGS
, sigcontext
, eflags
);
28 OFFSET(HOST_SC_EAX
, sigcontext
, eax
);
29 OFFSET(HOST_SC_EBX
, sigcontext
, ebx
);
30 OFFSET(HOST_SC_ECX
, sigcontext
, ecx
);
31 OFFSET(HOST_SC_EDX
, sigcontext
, edx
);
32 OFFSET(HOST_SC_EDI
, sigcontext
, edi
);
33 OFFSET(HOST_SC_ESI
, sigcontext
, esi
);
34 OFFSET(HOST_SC_EBP
, sigcontext
, ebp
);
35 OFFSET(HOST_SC_TRAPNO
, sigcontext
, trapno
);
36 OFFSET(HOST_SC_ERR
, sigcontext
, err
);
37 OFFSET(HOST_SC_CR2
, sigcontext
, cr2
);
38 OFFSET(HOST_SC_FPSTATE
, sigcontext
, fpstate
);
39 OFFSET(HOST_SC_SIGMASK
, sigcontext
, oldmask
);
40 OFFSET(HOST_SC_FP_CW
, _fpstate
, cw
);
41 OFFSET(HOST_SC_FP_SW
, _fpstate
, sw
);
42 OFFSET(HOST_SC_FP_TAG
, _fpstate
, tag
);
43 OFFSET(HOST_SC_FP_IPOFF
, _fpstate
, ipoff
);
44 OFFSET(HOST_SC_FP_CSSEL
, _fpstate
, cssel
);
45 OFFSET(HOST_SC_FP_DATAOFF
, _fpstate
, dataoff
);
46 OFFSET(HOST_SC_FP_DATASEL
, _fpstate
, datasel
);
47 OFFSET(HOST_SC_FP_ST
, _fpstate
, _st
);
48 OFFSET(HOST_SC_FXSR_ENV
, _fpstate
, _fxsr_env
);
50 DEFINE(HOST_FRAME_SIZE
, FRAME_SIZE
);
51 DEFINE_LONGS(HOST_FP_SIZE
, sizeof(struct user_i387_struct
));
52 DEFINE_LONGS(HOST_XFP_SIZE
, sizeof(struct user_fxsr_struct
));
55 DEFINE(HOST_SP
, UESP
);
56 DEFINE(HOST_EFLAGS
, EFL
);
57 DEFINE(HOST_EAX
, EAX
);
58 DEFINE(HOST_EBX
, EBX
);
59 DEFINE(HOST_ECX
, ECX
);
60 DEFINE(HOST_EDX
, EDX
);
61 DEFINE(HOST_ESI
, ESI
);
62 DEFINE(HOST_EDI
, EDI
);
63 DEFINE(HOST_EBP
, EBP
);
70 DEFINE(UM_FRAME_SIZE
, sizeof(struct user_regs_struct
));
72 /* XXX Duplicated between i386 and x86_64 */
73 DEFINE(UM_POLLIN
, POLLIN
);
74 DEFINE(UM_POLLPRI
, POLLPRI
);
75 DEFINE(UM_POLLOUT
, POLLOUT
);