blob: a1528dba162678db489e17ff9f08ffa48b1c65ba [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_LINUX_PTRACE_H
20#define _UAPI_LINUX_PTRACE_H
21#include <linux/types.h>
22#define PTRACE_TRACEME 0
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define PTRACE_PEEKTEXT 1
24#define PTRACE_PEEKDATA 2
25#define PTRACE_PEEKUSR 3
26#define PTRACE_POKETEXT 4
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define PTRACE_POKEDATA 5
28#define PTRACE_POKEUSR 6
29#define PTRACE_CONT 7
30#define PTRACE_KILL 8
Ben Cheng655a7c02013-10-16 16:09:24 -070031#define PTRACE_SINGLESTEP 9
32#define PTRACE_ATTACH 16
33#define PTRACE_DETACH 17
34#define PTRACE_SYSCALL 24
Ben Cheng655a7c02013-10-16 16:09:24 -070035#define PTRACE_SETOPTIONS 0x4200
36#define PTRACE_GETEVENTMSG 0x4201
37#define PTRACE_GETSIGINFO 0x4202
38#define PTRACE_SETSIGINFO 0x4203
Ben Cheng655a7c02013-10-16 16:09:24 -070039#define PTRACE_GETREGSET 0x4204
40#define PTRACE_SETREGSET 0x4205
41#define PTRACE_SEIZE 0x4206
42#define PTRACE_INTERRUPT 0x4207
Ben Cheng655a7c02013-10-16 16:09:24 -070043#define PTRACE_LISTEN 0x4208
44#define PTRACE_PEEKSIGINFO 0x4209
45struct ptrace_peeksiginfo_args {
Tao Baod7db5942015-01-28 10:07:51 -080046 __u64 off;
Tao Baod7db5942015-01-28 10:07:51 -080047 __u32 flags;
48 __s32 nr;
Ben Cheng655a7c02013-10-16 16:09:24 -070049};
Christopher Ferris38062f92014-07-09 15:33:25 -070050#define PTRACE_GETSIGMASK 0x420a
Christopher Ferris38062f92014-07-09 15:33:25 -070051#define PTRACE_SETSIGMASK 0x420b
Christopher Ferris05d08e92016-02-04 13:16:38 -080052#define PTRACE_SECCOMP_GET_FILTER 0x420c
Christopher Ferris76a1d452018-06-27 14:12:29 -070053#define PTRACE_SECCOMP_GET_METADATA 0x420d
54struct seccomp_metadata {
55 __u64 filter_off;
56 __u64 flags;
57};
Christopher Ferrisb8a95e22019-10-02 18:29:20 -070058#define PTRACE_GET_SYSCALL_INFO 0x420e
59#define PTRACE_SYSCALL_INFO_NONE 0
60#define PTRACE_SYSCALL_INFO_ENTRY 1
61#define PTRACE_SYSCALL_INFO_EXIT 2
62#define PTRACE_SYSCALL_INFO_SECCOMP 3
63struct ptrace_syscall_info {
64 __u8 op;
65 __u32 arch __attribute__((__aligned__(sizeof(__u32))));
66 __u64 instruction_pointer;
67 __u64 stack_pointer;
68 union {
69 struct {
70 __u64 nr;
71 __u64 args[6];
72 } entry;
73 struct {
74 __s64 rval;
75 __u8 is_error;
76 } exit;
77 struct {
78 __u64 nr;
79 __u64 args[6];
80 __u32 ret_data;
81 } seccomp;
82 };
83};
84#define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
85#define PTRACE_EVENTMSG_SYSCALL_EXIT 2
Christopher Ferris38062f92014-07-09 15:33:25 -070086#define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
Ben Cheng655a7c02013-10-16 16:09:24 -070087#define PTRACE_EVENT_FORK 1
Christopher Ferris05d08e92016-02-04 13:16:38 -080088#define PTRACE_EVENT_VFORK 2
Ben Cheng655a7c02013-10-16 16:09:24 -070089#define PTRACE_EVENT_CLONE 3
90#define PTRACE_EVENT_EXEC 4
91#define PTRACE_EVENT_VFORK_DONE 5
Christopher Ferris05d08e92016-02-04 13:16:38 -080092#define PTRACE_EVENT_EXIT 6
Ben Cheng655a7c02013-10-16 16:09:24 -070093#define PTRACE_EVENT_SECCOMP 7
94#define PTRACE_EVENT_STOP 128
95#define PTRACE_O_TRACESYSGOOD 1
Christopher Ferris05d08e92016-02-04 13:16:38 -080096#define PTRACE_O_TRACEFORK (1 << PTRACE_EVENT_FORK)
Ben Cheng655a7c02013-10-16 16:09:24 -070097#define PTRACE_O_TRACEVFORK (1 << PTRACE_EVENT_VFORK)
98#define PTRACE_O_TRACECLONE (1 << PTRACE_EVENT_CLONE)
99#define PTRACE_O_TRACEEXEC (1 << PTRACE_EVENT_EXEC)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800100#define PTRACE_O_TRACEVFORKDONE (1 << PTRACE_EVENT_VFORK_DONE)
Ben Cheng655a7c02013-10-16 16:09:24 -0700101#define PTRACE_O_TRACEEXIT (1 << PTRACE_EVENT_EXIT)
102#define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP)
103#define PTRACE_O_EXITKILL (1 << 20)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800104#define PTRACE_O_SUSPEND_SECCOMP (1 << 21)
105#define PTRACE_O_MASK (0x000000ff | PTRACE_O_EXITKILL | PTRACE_O_SUSPEND_SECCOMP)
Ben Cheng655a7c02013-10-16 16:09:24 -0700106#include <asm/ptrace.h>
107#endif