summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include/ptrace.h
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-08-15 05:40:59 +0000
committermarcel <marcel@FreeBSD.org>2003-08-15 05:40:59 +0000
commitb37a3e34cdfb5be8f3c34d2edf399635a319130a (patch)
tree5592d3f562e1c67656173d1b0c4060bf2b8cca7e /sys/ia64/include/ptrace.h
parent77c3cd3d303099ad2d819725741f948ad5ff37d8 (diff)
downloadFreeBSD-src-b37a3e34cdfb5be8f3c34d2edf399635a319130a.zip
FreeBSD-src-b37a3e34cdfb5be8f3c34d2edf399635a319130a.tar.gz
Introduce two machine specific ptrace(2) requests: PT_GETKSTACK and
PT_SETKSTACK. These requests allow the tracing process to access the dirty registers of the traced process that are on the kernel stack. Note that there's currently no way to access the rnat register for those dirty registers that are not (yet) covered by a nat collection point. The interface for this is still being slept on. Also note that implied by these requests is the division of work: The tracing process has to keep track of where registers are spilled and is responsible to figure out where the NaT bit of the stacked registers are at any time during the execution of the traced process. The kernel provides the interfaces but will not abstract the fact that the register stack can be split. This model does not follow the approach taken in Linux where PT_PEEK and PT_POKE deals with this automagically.
Diffstat (limited to 'sys/ia64/include/ptrace.h')
-rw-r--r--sys/ia64/include/ptrace.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/ia64/include/ptrace.h b/sys/ia64/include/ptrace.h
index 7f4e7db..11e7751 100644
--- a/sys/ia64/include/ptrace.h
+++ b/sys/ia64/include/ptrace.h
@@ -35,6 +35,12 @@
*/
#ifndef _MACHINE_PTRACE_H_
-#define _MACHINE_PTRACE_H_
+#define _MACHINE_PTRACE_H_
-#endif
+#define __HAVE_PTRACE_MACHDEP
+
+/* Fetch/store dirty registers on the kernel stack. */
+#define PT_GETKSTACK (PT_FIRSTMACH + 0)
+#define PT_SETKSTACK (PT_FIRSTMACH + 1)
+
+#endif /* _MACHINE_PTRACE_H_ */
OpenPOWER on IntegriCloud