summaryrefslogtreecommitdiffstats
path: root/arch/alpha/include/uapi/asm/ptrace.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-18 10:10:36 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-18 10:10:36 -0800
commit3d9de1909b339f967f1b37367df233a0dcfc10cf (patch)
treeb2360a9ac142e15007ebe0fabf0365b9d4cd8b65 /arch/alpha/include/uapi/asm/ptrace.h
parent9a8a5702c5a7298c0edd125464aa178dd8b50440 (diff)
parent96433f6ee49032d7a8bda76de2b05cfde2914354 (diff)
downloadop-kernel-dev-3d9de1909b339f967f1b37367df233a0dcfc10cf.zip
op-kernel-dev-3d9de1909b339f967f1b37367df233a0dcfc10cf.tar.gz
Merge tag 'disintegrate-alpha-20121217' of git://git.infradead.org/users/dhowells/linux-headers
Pull UAPI disintegration for Alpha from David Howells: "I've been asked to send the Alpha UAPI disintegration to you directly. The acks I have been given have been added into the patch." * tag 'disintegrate-alpha-20121217' of git://git.infradead.org/users/dhowells/linux-headers: UAPI: (Scripted) Disintegrate arch/alpha/include/asm
Diffstat (limited to 'arch/alpha/include/uapi/asm/ptrace.h')
-rw-r--r--arch/alpha/include/uapi/asm/ptrace.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/arch/alpha/include/uapi/asm/ptrace.h b/arch/alpha/include/uapi/asm/ptrace.h
new file mode 100644
index 0000000..5ce83fa
--- /dev/null
+++ b/arch/alpha/include/uapi/asm/ptrace.h
@@ -0,0 +1,70 @@
+#ifndef _UAPI_ASMAXP_PTRACE_H
+#define _UAPI_ASMAXP_PTRACE_H
+
+
+/*
+ * This struct defines the way the registers are stored on the
+ * kernel stack during a system call or other kernel entry
+ *
+ * NOTE! I want to minimize the overhead of system calls, so this
+ * struct has as little information as possible. I does not have
+ *
+ * - floating point regs: the kernel doesn't change those
+ * - r9-15: saved by the C compiler
+ *
+ * This makes "fork()" and "exec()" a bit more complex, but should
+ * give us low system call latency.
+ */
+
+struct pt_regs {
+ unsigned long r0;
+ unsigned long r1;
+ unsigned long r2;
+ unsigned long r3;
+ unsigned long r4;
+ unsigned long r5;
+ unsigned long r6;
+ unsigned long r7;
+ unsigned long r8;
+ unsigned long r19;
+ unsigned long r20;
+ unsigned long r21;
+ unsigned long r22;
+ unsigned long r23;
+ unsigned long r24;
+ unsigned long r25;
+ unsigned long r26;
+ unsigned long r27;
+ unsigned long r28;
+ unsigned long hae;
+/* JRP - These are the values provided to a0-a2 by PALcode */
+ unsigned long trap_a0;
+ unsigned long trap_a1;
+ unsigned long trap_a2;
+/* These are saved by PAL-code: */
+ unsigned long ps;
+ unsigned long pc;
+ unsigned long gp;
+ unsigned long r16;
+ unsigned long r17;
+ unsigned long r18;
+};
+
+/*
+ * This is the extended stack used by signal handlers and the context
+ * switcher: it's pushed after the normal "struct pt_regs".
+ */
+struct switch_stack {
+ unsigned long r9;
+ unsigned long r10;
+ unsigned long r11;
+ unsigned long r12;
+ unsigned long r13;
+ unsigned long r14;
+ unsigned long r15;
+ unsigned long r26;
+ unsigned long fp[32]; /* fp[31] is fpcr */
+};
+
+
+#endif /* _UAPI_ASMAXP_PTRACE_H */
OpenPOWER on IntegriCloud