1 /* 2 * Copyright (C) 2004-2006 Atmel Corporation 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 #ifndef __ASM_AVR32_PTRACE_H 9 #define __ASM_AVR32_PTRACE_H 10 11 #include <uapi/asm/ptrace.h> 12 13 #ifndef __ASSEMBLY__ 14 15 #include <asm/ocd.h> 16 17 #define arch_has_single_step() (1) 18 19 #define arch_ptrace_attach(child) ocd_enable(child) 20 21 #define user_mode(regs) (((regs)->sr & MODE_MASK) == MODE_USER) 22 #define instruction_pointer(regs) ((regs)->pc) 23 #define profile_pc(regs) instruction_pointer(regs) 24 #define user_stack_pointer(regs) ((regs)->sp) 25 valid_user_regs(struct pt_regs * regs)26static __inline__ int valid_user_regs(struct pt_regs *regs) 27 { 28 /* 29 * Some of the Java bits might be acceptable if/when we 30 * implement some support for that stuff... 31 */ 32 if ((regs->sr & 0xffff0000) == 0) 33 return 1; 34 35 /* 36 * Force status register flags to be sane and report this 37 * illegal behaviour... 38 */ 39 regs->sr &= 0x0000ffff; 40 return 0; 41 } 42 43 44 #endif /* ! __ASSEMBLY__ */ 45 #endif /* __ASM_AVR32_PTRACE_H */ 46