12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*
- * Copyright 2004-2008 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
- #ifndef _BFIN_PTRACE_H
- #define _BFIN_PTRACE_H
- #include <uapi/asm/ptrace.h>
- #ifndef __ASSEMBLY__
- /* user_mode returns true if only one bit is set in IPEND, other than the
- master interrupt enable. */
- #define user_mode(regs) (!(((regs)->ipend & ~0x10) & (((regs)->ipend & ~0x10) - 1)))
- #define arch_has_single_step() (1)
- /* common code demands this function */
- #define ptrace_disable(child) user_disable_single_step(child)
- #define current_user_stack_pointer() rdusp()
- extern int is_user_addr_valid(struct task_struct *child,
- unsigned long start, unsigned long len);
- /*
- * Get the address of the live pt_regs for the specified task.
- * These are saved onto the top kernel stack when the process
- * is not running.
- *
- * Note: if a user thread is execve'd from kernel space, the
- * kernel stack will not be empty on entry to the kernel, so
- * ptracing these tasks will fail.
- */
- #define task_pt_regs(task) \
- (struct pt_regs *) \
- ((unsigned long)task_stack_page(task) + \
- (THREAD_SIZE - sizeof(struct pt_regs)))
- #include <asm-generic/ptrace.h>
- #endif /* __ASSEMBLY__ */
- #endif /* _BFIN_PTRACE_H */
|