]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-sparc64/ptrace.h
hugetlbfs: common code update for s390
[linux-2.6-omap-h63xx.git] / include / asm-sparc64 / ptrace.h
index 7eba90c6c7535394859269ea5610f31650a3b247..b4b951d570bbf3915fdf5ddad8624c95f70b453c 100644 (file)
@@ -8,6 +8,8 @@
  * stack during a system call and basically all traps.
  */
 
+#define PT_REGS_MAGIC 0x57ac6c00
+
 #ifndef __ASSEMBLY__
 
 struct pt_regs {
@@ -16,7 +18,19 @@ struct pt_regs {
        unsigned long tpc;
        unsigned long tnpc;
        unsigned int y;
-       unsigned int fprs;
+
+       /* We encode a magic number, PT_REGS_MAGIC, along
+        * with the %tt (trap type) register value at trap
+        * entry time.  The magic number allows us to identify
+        * accurately a trap stack frame in the stack
+        * unwinder, and the %tt value allows us to test
+        * things like "in a system call" etc. for an arbitray
+        * process.
+        *
+        * The PT_REGS_MAGIC is choosen such that it can be
+        * loaded completely using just a sethi instruction.
+        */
+       unsigned int magic;
 };
 
 struct pt_regs32 {
@@ -95,19 +109,21 @@ struct sparc_trapf {
 
 #ifdef __KERNEL__
 
-#define __ARCH_SYS_PTRACE      1
+#define __ARCH_WANT_COMPAT_SYS_PTRACE
 
 #define force_successful_syscall_return()          \
 do {   current_thread_info()->syscall_noerror = 1; \
 } while (0)
 #define user_mode(regs) (!((regs)->tstate & TSTATE_PRIV))
 #define instruction_pointer(regs) ((regs)->tpc)
+#define regs_return_value(regs) ((regs)->u_regs[UREG_I0])
 #ifdef CONFIG_SMP
 extern unsigned long profile_pc(struct pt_regs *);
 #else
 #define profile_pc(regs) instruction_pointer(regs)
 #endif
 extern void show_regs(struct pt_regs *);
+extern void __show_regs(struct pt_regs *);
 #endif
 
 #else /* __ASSEMBLY__ */
@@ -145,7 +161,7 @@ extern void show_regs(struct pt_regs *);
 #define PT_V9_TPC    0x88
 #define PT_V9_TNPC   0x90
 #define PT_V9_Y      0x98
-#define PT_V9_FPRS   0x9c
+#define PT_V9_MAGIC  0x9c
 #define PT_TSTATE      PT_V9_TSTATE
 #define PT_TPC         PT_V9_TPC
 #define PT_TNPC                PT_V9_TNPC
@@ -261,8 +277,6 @@ extern void show_regs(struct pt_regs *);
 #define SF_XXARG  0x5c
 
 /* Stuff for the ptrace system call */
-#define PTRACE_SUNATTACH          10
-#define PTRACE_SUNDETACH          11
 #define PTRACE_GETREGS            12
 #define PTRACE_SETREGS            13
 #define PTRACE_GETFPREGS          14
@@ -284,18 +298,4 @@ extern void show_regs(struct pt_regs *);
 #define PTRACE_GETFPREGS64       25
 #define PTRACE_SETFPREGS64       26
 
-#define PTRACE_GETUCODE           29  /* stupid bsd-ism */
-
-/* These are for 32-bit processes debugging 64-bit ones.
- * Here addr and addr2 are passed in %g2 and %g3 respectively.
- */
-#define PTRACE_PEEKTEXT64         (30 + PTRACE_PEEKTEXT)
-#define PTRACE_POKETEXT64         (30 + PTRACE_POKETEXT)
-#define PTRACE_PEEKDATA64         (30 + PTRACE_PEEKDATA)
-#define PTRACE_POKEDATA64         (30 + PTRACE_POKEDATA)
-#define PTRACE_READDATA64         (30 + PTRACE_READDATA)
-#define PTRACE_WRITEDATA64        (30 + PTRACE_WRITEDATA)
-#define PTRACE_READTEXT64         (30 + PTRACE_READTEXT)
-#define PTRACE_WRITETEXT64        (30 + PTRACE_WRITETEXT)
-
 #endif /* !(_SPARC64_PTRACE_H) */