• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifdef NEED_PTRACE_PROTOTYPE_WORKAROUND
2 # define ptrace xptrace
3 # include <sys/ptrace.h>
4 # undef ptrace
5 extern long ptrace(int, int, char *, long);
6 #else
7 # include <sys/ptrace.h>
8 #endif
9 
10 #ifdef HAVE_STRUCT_IA64_FPREG
11 # define ia64_fpreg XXX_ia64_fpreg
12 #endif
13 #ifdef HAVE_STRUCT_PT_ALL_USER_REGS
14 # define pt_all_user_regs XXX_pt_all_user_regs
15 #endif
16 #ifdef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS
17 # define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
18 #endif
19 
20 #include <linux/ptrace.h>
21 
22 #ifdef HAVE_STRUCT_IA64_FPREG
23 # undef ia64_fpreg
24 #endif
25 #ifdef HAVE_STRUCT_PT_ALL_USER_REGS
26 # undef pt_all_user_regs
27 #endif
28 #ifdef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS
29 # undef ptrace_peeksiginfo_args
30 #endif
31 
32 #ifndef PTRACE_EVENT_FORK
33 # define PTRACE_EVENT_FORK	1
34 #endif
35 #ifndef PTRACE_EVENT_VFORK
36 # define PTRACE_EVENT_VFORK	2
37 #endif
38 #ifndef PTRACE_EVENT_CLONE
39 # define PTRACE_EVENT_CLONE	3
40 #endif
41 #ifndef PTRACE_EVENT_EXEC
42 # define PTRACE_EVENT_EXEC	4
43 #endif
44 #ifndef PTRACE_EVENT_VFORK_DONE
45 # define PTRACE_EVENT_VFORK_DONE	5
46 #endif
47 #ifndef PTRACE_EVENT_EXIT
48 # define PTRACE_EVENT_EXIT	6
49 #endif
50 #ifndef PTRACE_EVENT_SECCOMP
51 # define PTRACE_EVENT_SECCOMP	7
52 #endif
53 #ifdef PTRACE_EVENT_STOP
54 /* Linux 3.1 - 3.3 releases had a broken value.  It was fixed in 3.4.  */
55 # if PTRACE_EVENT_STOP == 7
56 #  undef PTRACE_EVENT_STOP
57 # endif
58 #endif
59 #ifndef PTRACE_EVENT_STOP
60 # define PTRACE_EVENT_STOP	128
61 #endif
62 
63 #ifndef PTRACE_O_TRACESYSGOOD
64 # define PTRACE_O_TRACESYSGOOD	1
65 #endif
66 #ifndef PTRACE_O_TRACEFORK
67 # define PTRACE_O_TRACEFORK	(1 << PTRACE_EVENT_FORK)
68 #endif
69 #ifndef PTRACE_O_TRACEVFORK
70 # define PTRACE_O_TRACEVFORK	(1 << PTRACE_EVENT_VFORK)
71 #endif
72 #ifndef PTRACE_O_TRACECLONE
73 # define PTRACE_O_TRACECLONE	(1 << PTRACE_EVENT_CLONE)
74 #endif
75 #ifndef PTRACE_O_TRACEEXEC
76 # define PTRACE_O_TRACEEXEC	(1 << PTRACE_EVENT_EXEC)
77 #endif
78 #ifndef PTRACE_O_TRACEVFORKDONE
79 # define PTRACE_O_TRACEVFORKDONE	(1 << PTRACE_EVENT_VFORK_DONE)
80 #endif
81 #ifndef PTRACE_O_TRACEEXIT
82 # define PTRACE_O_TRACEEXIT	(1 << PTRACE_EVENT_EXIT)
83 #endif
84 #ifndef PTRACE_O_TRACESECCOMP
85 # define PTRACE_O_TRACESECCOMP	(1 << PTRACE_EVENT_SECCOMP)
86 #endif
87 #ifndef PTRACE_O_EXITKILL
88 # define PTRACE_O_EXITKILL	(1 << 20)
89 #endif
90 
91 #ifndef PTRACE_SETOPTIONS
92 # define PTRACE_SETOPTIONS	0x4200
93 #endif
94 #ifndef PTRACE_GETEVENTMSG
95 # define PTRACE_GETEVENTMSG	0x4201
96 #endif
97 #ifndef PTRACE_GETSIGINFO
98 # define PTRACE_GETSIGINFO	0x4202
99 #endif
100 #ifndef PTRACE_SETSIGINFO
101 # define PTRACE_SETSIGINFO	0x4203
102 #endif
103 #ifndef PTRACE_GETREGSET
104 # define PTRACE_GETREGSET	0x4204
105 #endif
106 #ifndef PTRACE_SETREGSET
107 # define PTRACE_SETREGSET	0x4205
108 #endif
109 #ifndef PTRACE_SEIZE
110 # define PTRACE_SEIZE		0x4206
111 #endif
112 #ifndef PTRACE_INTERRUPT
113 # define PTRACE_INTERRUPT	0x4207
114 #endif
115 #ifndef PTRACE_LISTEN
116 # define PTRACE_LISTEN		0x4208
117 #endif
118 #ifndef PTRACE_PEEKSIGINFO
119 # define PTRACE_PEEKSIGINFO	0x4209
120 #endif
121 #ifndef PTRACE_GETSIGMASK
122 # define PTRACE_GETSIGMASK	0x420a
123 #endif
124 #ifndef PTRACE_SETSIGMASK
125 # define PTRACE_SETSIGMASK	0x420b
126 #endif
127 
128 #if !HAVE_DECL_PTRACE_PEEKUSER
129 # define PTRACE_PEEKUSER PTRACE_PEEKUSR
130 #endif
131 #if !HAVE_DECL_PTRACE_POKEUSER
132 # define PTRACE_POKEUSER PTRACE_POKEUSR
133 #endif
134