• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/um/sys-x86_64/
1#include <stdio.h>
2#include <stddef.h>
3#include <signal.h>
4#include <sys/poll.h>
5#include <sys/mman.h>
6#include <sys/user.h>
7#define __FRAME_OFFSETS
8#include <asm/ptrace.h>
9#include <asm/types.h>
10
11#define DEFINE(sym, val) \
12        asm volatile("\n->" #sym " %0 " #val : : "i" (val))
13
14#define DEFINE_LONGS(sym, val) \
15        asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long)))
16
17#define OFFSET(sym, str, mem) \
18	DEFINE(sym, offsetof(struct str, mem));
19
20void foo(void)
21{
22	OFFSET(HOST_SC_CR2, sigcontext, cr2);
23	OFFSET(HOST_SC_ERR, sigcontext, err);
24	OFFSET(HOST_SC_TRAPNO, sigcontext, trapno);
25
26	DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long));
27	DEFINE_LONGS(HOST_RBX, RBX);
28	DEFINE_LONGS(HOST_RCX, RCX);
29	DEFINE_LONGS(HOST_RDI, RDI);
30	DEFINE_LONGS(HOST_RSI, RSI);
31	DEFINE_LONGS(HOST_RDX, RDX);
32	DEFINE_LONGS(HOST_RBP, RBP);
33	DEFINE_LONGS(HOST_RAX, RAX);
34	DEFINE_LONGS(HOST_R8, R8);
35	DEFINE_LONGS(HOST_R9, R9);
36	DEFINE_LONGS(HOST_R10, R10);
37	DEFINE_LONGS(HOST_R11, R11);
38	DEFINE_LONGS(HOST_R12, R12);
39	DEFINE_LONGS(HOST_R13, R13);
40	DEFINE_LONGS(HOST_R14, R14);
41	DEFINE_LONGS(HOST_R15, R15);
42	DEFINE_LONGS(HOST_ORIG_RAX, ORIG_RAX);
43	DEFINE_LONGS(HOST_CS, CS);
44	DEFINE_LONGS(HOST_SS, SS);
45	DEFINE_LONGS(HOST_EFLAGS, EFLAGS);
46
47	DEFINE_LONGS(HOST_IP, RIP);
48	DEFINE_LONGS(HOST_SP, RSP);
49	DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct));
50
51	DEFINE(UM_POLLIN, POLLIN);
52	DEFINE(UM_POLLPRI, POLLPRI);
53	DEFINE(UM_POLLOUT, POLLOUT);
54
55	DEFINE(UM_PROT_READ, PROT_READ);
56	DEFINE(UM_PROT_WRITE, PROT_WRITE);
57	DEFINE(UM_PROT_EXEC, PROT_EXEC);
58}
59