Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ptrace.h
Go to the documentation of this file.
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 
25 static __inline__ int valid_user_regs(struct pt_regs *regs)
26 {
27  /*
28  * Some of the Java bits might be acceptable if/when we
29  * implement some support for that stuff...
30  */
31  if ((regs->sr & 0xffff0000) == 0)
32  return 1;
33 
34  /*
35  * Force status register flags to be sane and report this
36  * illegal behaviour...
37  */
38  regs->sr &= 0x0000ffff;
39  return 0;
40 }
41 
42 
43 #endif /* ! __ASSEMBLY__ */
44 #endif /* __ASM_AVR32_PTRACE_H */