Commit | Line | Data |
---|---|---|
96f1050d RG |
1 | /* |
2 | * Copyright 2004-2008 Analog Devices Inc. | |
3 | * | |
4 | * Licensed under the GPL-2 or later. | |
5 | */ | |
1394f032 BW |
6 | #ifndef _BFIN_PTRACE_H |
7 | #define _BFIN_PTRACE_H | |
8 | ||
2ba36450 | 9 | #include <uapi/asm/ptrace.h> |
1394f032 BW |
10 | |
11 | #ifndef __ASSEMBLY__ | |
12 | ||
1394f032 BW |
13 | /* user_mode returns true if only one bit is set in IPEND, other than the |
14 | master interrupt enable. */ | |
15 | #define user_mode(regs) (!(((regs)->ipend & ~0x10) & (((regs)->ipend & ~0x10) - 1))) | |
1394f032 | 16 | |
e8f263df | 17 | #define arch_has_single_step() (1) |
e8f263df MF |
18 | /* common code demands this function */ |
19 | #define ptrace_disable(child) user_disable_single_step(child) | |
1ca97bb5 | 20 | #define current_user_stack_pointer() rdusp() |
e8f263df | 21 | |
99a5b287 SZ |
22 | extern int is_user_addr_valid(struct task_struct *child, |
23 | unsigned long start, unsigned long len); | |
24 | ||
e8f263df MF |
25 | /* |
26 | * Get the address of the live pt_regs for the specified task. | |
27 | * These are saved onto the top kernel stack when the process | |
28 | * is not running. | |
29 | * | |
30 | * Note: if a user thread is execve'd from kernel space, the | |
31 | * kernel stack will not be empty on entry to the kernel, so | |
32 | * ptracing these tasks will fail. | |
33 | */ | |
34 | #define task_pt_regs(task) \ | |
35 | (struct pt_regs *) \ | |
36 | ((unsigned long)task_stack_page(task) + \ | |
37 | (THREAD_SIZE - sizeof(struct pt_regs))) | |
38 | ||
82258c66 MF |
39 | #include <asm-generic/ptrace.h> |
40 | ||
1394f032 | 41 | #endif /* __ASSEMBLY__ */ |
1394f032 | 42 | #endif /* _BFIN_PTRACE_H */ |