blob: c54b75f071121c603bf65f7b3013377c124583a3 [file] [log] [blame]
Andrew Walbran3d2c1972020-04-07 12:24:26 +01001//===-- 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__
17typedef 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_