summaryrefslogtreecommitdiff
path: root/include/lldb/Host/linux/Ptrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Host/linux/Ptrace.h')
-rw-r--r--include/lldb/Host/linux/Ptrace.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/include/lldb/Host/linux/Ptrace.h b/include/lldb/Host/linux/Ptrace.h
new file mode 100644
index 0000000000000..b28bb37715d61
--- /dev/null
+++ b/include/lldb/Host/linux/Ptrace.h
@@ -0,0 +1,66 @@
+//===-- Ptrace.h ------------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// This file defines ptrace functions & structures
+
+#ifndef liblldb_Host_linux_Ptrace_h_
+#define liblldb_Host_linux_Ptrace_h_
+
+#include <sys/ptrace.h>
+
+#ifdef __ANDROID_NDK__
+#define PT_DETACH PTRACE_DETACH
+typedef int __ptrace_request;
+#endif
+
+#define DEBUG_PTRACE_MAXBYTES 20
+
+// Support ptrace extensions even when compiled without required kernel support
+#ifndef PT_GETREGS
+ #ifndef PTRACE_GETREGS
+ #define PTRACE_GETREGS 12
+ #endif
+#endif
+#ifndef PT_SETREGS
+ #ifndef PTRACE_SETREGS
+ #define PTRACE_SETREGS 13
+ #endif
+#endif
+#ifndef PT_GETFPREGS
+ #ifndef PTRACE_GETFPREGS
+ #define PTRACE_GETFPREGS 14
+ #endif
+#endif
+#ifndef PT_SETFPREGS
+ #ifndef PTRACE_SETFPREGS
+ #define PTRACE_SETFPREGS 15
+ #endif
+#endif
+#ifndef PTRACE_GETREGSET
+ #define PTRACE_GETREGSET 0x4204
+#endif
+#ifndef PTRACE_SETREGSET
+ #define PTRACE_SETREGSET 0x4205
+#endif
+#ifndef PTRACE_GET_THREAD_AREA
+ #define PTRACE_GET_THREAD_AREA 25
+#endif
+#ifndef PTRACE_ARCH_PRCTL
+ #define PTRACE_ARCH_PRCTL 30
+#endif
+#ifndef ARCH_GET_FS
+ #define ARCH_SET_GS 0x1001
+ #define ARCH_SET_FS 0x1002
+ #define ARCH_GET_FS 0x1003
+ #define ARCH_GET_GS 0x1004
+#endif
+
+#define LLDB_PTRACE_NT_ARM_TLS 0x401 // ARM TLS register
+
+#endif // liblldb_Host_linux_Ptrace_h_