diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-12-24 11:04:08 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-12-24 11:04:08 +0100 |
commit | 7645c4bfbb36f357f03815f5729c46ce8d89f008 (patch) | |
tree | eb2c45bbdfc715a9a6e96e6af9675a0440ef8ff1 /arch/sparc/include | |
parent | 74b7ff48a93f44198ac03cc4e628d713f53d4668 (diff) | |
parent | 574f3c4f5c55e99ea60f71fd98cc54931d4b2eae (diff) |
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'arch/sparc/include')
-rw-r--r-- | arch/sparc/include/asm/ptrace_32.h | 10 | ||||
-rw-r--r-- | arch/sparc/include/asm/ptrace_64.h | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/ptrace_32.h b/arch/sparc/include/asm/ptrace_32.h index d409c4f21a5c..4cef450167dd 100644 --- a/arch/sparc/include/asm/ptrace_32.h +++ b/arch/sparc/include/asm/ptrace_32.h @@ -62,6 +62,8 @@ struct sparc_stackf { #ifdef __KERNEL__ +#include <asm/system.h> + static inline bool pt_regs_is_syscall(struct pt_regs *regs) { return (regs->psr & PSR_SYSCALL); @@ -72,6 +74,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs) return (regs->psr &= ~PSR_SYSCALL); } +#define arch_ptrace_stop_needed(exit_code, info) \ +({ flush_user_windows(); \ + current_thread_info()->w_saved != 0; \ +}) + +#define arch_ptrace_stop(exit_code, info) \ + synchronize_user_stack() + #define user_mode(regs) (!((regs)->psr & PSR_PS)) #define instruction_pointer(regs) ((regs)->pc) #define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP]) diff --git a/arch/sparc/include/asm/ptrace_64.h b/arch/sparc/include/asm/ptrace_64.h index 84e969f06afe..cd6fbfc20435 100644 --- a/arch/sparc/include/asm/ptrace_64.h +++ b/arch/sparc/include/asm/ptrace_64.h @@ -114,6 +114,7 @@ struct sparc_trapf { #ifdef __KERNEL__ #include <linux/threads.h> +#include <asm/system.h> static inline int pt_regs_trap_type(struct pt_regs *regs) { @@ -130,6 +131,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs) return (regs->tstate &= ~TSTATE_SYSCALL); } +#define arch_ptrace_stop_needed(exit_code, info) \ +({ flush_user_windows(); \ + get_thread_wsaved() != 0; \ +}) + +#define arch_ptrace_stop(exit_code, info) \ + synchronize_user_stack() + struct global_reg_snapshot { unsigned long tstate; unsigned long tpc; |