• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)26 static __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