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
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