1 //===-- Ptrace.h ------------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 // This file defines ptrace functions & structures
10 
11 #ifndef liblldb_Host_linux_Ptrace_h_
12 #define liblldb_Host_linux_Ptrace_h_
13 
14 #include <sys/ptrace.h>
15 
16 #ifndef __GLIBC__
17 typedef int __ptrace_request;
18 #endif
19 
20 #define DEBUG_PTRACE_MAXBYTES 20
21 
22 // Support ptrace extensions even when compiled without required kernel support
23 #ifndef PTRACE_GETREGS
24 #define PTRACE_GETREGS 12
25 #endif
26 #ifndef PTRACE_SETREGS
27 #define PTRACE_SETREGS 13
28 #endif
29 #ifndef PTRACE_GETFPREGS
30 #define PTRACE_GETFPREGS 14
31 #endif
32 #ifndef PTRACE_SETFPREGS
33 #define PTRACE_SETFPREGS 15
34 #endif
35 #ifndef PTRACE_GETREGSET
36 #define PTRACE_GETREGSET 0x4204
37 #endif
38 #ifndef PTRACE_SETREGSET
39 #define PTRACE_SETREGSET 0x4205
40 #endif
41 #ifndef PTRACE_GET_THREAD_AREA
42 #define PTRACE_GET_THREAD_AREA 25
43 #endif
44 #ifndef PTRACE_ARCH_PRCTL
45 #define PTRACE_ARCH_PRCTL 30
46 #endif
47 #ifndef ARCH_GET_FS
48 #define ARCH_SET_GS 0x1001
49 #define ARCH_SET_FS 0x1002
50 #define ARCH_GET_FS 0x1003
51 #define ARCH_GET_GS 0x1004
52 #endif
53 
54 #define LLDB_PTRACE_NT_ARM_TLS 0x401 // ARM TLS register
55 
56 #endif // liblldb_Host_linux_Ptrace_h_
57