X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Farch%2Fblackfin%2Finclude%2Fasm%2Fptrace.h;fp=kernel%2Farch%2Fblackfin%2Finclude%2Fasm%2Fptrace.h;h=c00491594b46d8b4adf2e75621090187bf778b5b;hb=9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00;hp=0000000000000000000000000000000000000000;hpb=98260f3884f4a202f9ca5eabed40b1354c489b29;p=kvmfornfv.git diff --git a/kernel/arch/blackfin/include/asm/ptrace.h b/kernel/arch/blackfin/include/asm/ptrace.h new file mode 100644 index 000000000..c00491594 --- /dev/null +++ b/kernel/arch/blackfin/include/asm/ptrace.h @@ -0,0 +1,42 @@ +/* + * Copyright 2004-2008 Analog Devices Inc. + * + * Licensed under the GPL-2 or later. + */ +#ifndef _BFIN_PTRACE_H +#define _BFIN_PTRACE_H + +#include + +#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 + +#endif /* __ASSEMBLY__ */ +#endif /* _BFIN_PTRACE_H */