linux: move a shared part of sys/ptrace.h to bits/ptrace-shared.h
[glibc.git] / sysdeps / unix / sysv / linux / bits / ptrace-shared.h
blob98ed335c4b077737c993c6e5dbdf5616118f1db0
1 /* `ptrace' debugger support interface. Linux version,
2 not architecture-specific.
3 Copyright (C) 1996-2017 Free Software Foundation, Inc.
5 This file is part of the GNU C Library.
7 The GNU C Library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
12 The GNU C Library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 You should have received a copy of the GNU Lesser General Public
18 License along with the GNU C Library; if not, see
19 <http://www.gnu.org/licenses/>. */
21 #ifndef _SYS_PTRACE_H
22 # error "Never use <bits/ptrace-shared.h> directly; include <sys/ptrace.h> instead."
23 #endif
25 /* Options set using PTRACE_SETOPTIONS. */
26 enum __ptrace_setoptions
28 PTRACE_O_TRACESYSGOOD = 0x00000001,
29 PTRACE_O_TRACEFORK = 0x00000002,
30 PTRACE_O_TRACEVFORK = 0x00000004,
31 PTRACE_O_TRACECLONE = 0x00000008,
32 PTRACE_O_TRACEEXEC = 0x00000010,
33 PTRACE_O_TRACEVFORKDONE = 0x00000020,
34 PTRACE_O_TRACEEXIT = 0x00000040,
35 PTRACE_O_TRACESECCOMP = 0x00000080,
36 PTRACE_O_EXITKILL = 0x00100000,
37 PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
38 PTRACE_O_MASK = 0x003000ff
41 enum __ptrace_eventcodes
43 /* Wait extended result codes for the above trace options. */
44 PTRACE_EVENT_FORK = 1,
45 PTRACE_EVENT_VFORK = 2,
46 PTRACE_EVENT_CLONE = 3,
47 PTRACE_EVENT_EXEC = 4,
48 PTRACE_EVENT_VFORK_DONE = 5,
49 PTRACE_EVENT_EXIT = 6,
50 PTRACE_EVENT_SECCOMP = 7,
51 /* Extended result codes enabled by means other than options. */
52 PTRACE_EVENT_STOP = 128
55 /* Arguments for PTRACE_PEEKSIGINFO. */
56 struct __ptrace_peeksiginfo_args
58 __uint64_t off; /* From which siginfo to start. */
59 __uint32_t flags; /* Flags for peeksiginfo. */
60 __int32_t nr; /* How many siginfos to take. */
63 enum __ptrace_peeksiginfo_flags
65 /* Read signals from a shared (process wide) queue. */
66 PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
69 /* Perform process tracing functions. REQUEST is one of the values
70 above, and determines the action to be taken.
71 For all requests except PTRACE_TRACEME, PID specifies the process to be
72 traced.
74 PID and the other arguments described above for the various requests should
75 appear (those that are used for the particular request) as:
76 pid_t PID, void *ADDR, int DATA, void *ADDR2
77 after REQUEST. */
78 extern long int ptrace (enum __ptrace_request __request, ...) __THROW;