~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/um/asm/ptrace.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef __UM_X86_PTRACE_H
  3 #define __UM_X86_PTRACE_H
  4 
  5 #include <linux/compiler.h>
  6 #ifndef CONFIG_X86_32
  7 #define __FRAME_OFFSETS /* Needed to get the R* macros */
  8 #endif
  9 #include <asm/ptrace-generic.h>
 10 
 11 #define user_mode(r) UPT_IS_USER(&(r)->regs)
 12 
 13 #define PT_REGS_AX(r) UPT_AX(&(r)->regs)
 14 #define PT_REGS_BX(r) UPT_BX(&(r)->regs)
 15 #define PT_REGS_CX(r) UPT_CX(&(r)->regs)
 16 #define PT_REGS_DX(r) UPT_DX(&(r)->regs)
 17 
 18 #define PT_REGS_SI(r) UPT_SI(&(r)->regs)
 19 #define PT_REGS_DI(r) UPT_DI(&(r)->regs)
 20 #define PT_REGS_BP(r) UPT_BP(&(r)->regs)
 21 #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs)
 22 
 23 #define PT_REGS_CS(r) UPT_CS(&(r)->regs)
 24 #define PT_REGS_SS(r) UPT_SS(&(r)->regs)
 25 #define PT_REGS_DS(r) UPT_DS(&(r)->regs)
 26 #define PT_REGS_ES(r) UPT_ES(&(r)->regs)
 27 
 28 #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_AX(r)
 29 #define PT_REGS_SYSCALL_RET(r) PT_REGS_AX(r)
 30 
 31 #define PT_FIX_EXEC_STACK(sp) do ; while(0)
 32 
 33 #define profile_pc(regs) PT_REGS_IP(regs)
 34 
 35 #define UPT_RESTART_SYSCALL(r) (UPT_IP(r) -= 2)
 36 #define PT_REGS_SET_SYSCALL_RETURN(r, res) (PT_REGS_AX(r) = (res))
 37 
 38 static inline long regs_return_value(struct pt_regs *regs)
 39 {
 40         return PT_REGS_AX(regs);
 41 }
 42 
 43 /*
 44  * Forward declaration to avoid including sysdep/tls.h, which causes a
 45  * circular include, and compilation failures.
 46  */
 47 struct user_desc;
 48 
 49 #ifdef CONFIG_X86_32
 50 
 51 extern int ptrace_get_thread_area(struct task_struct *child, int idx,
 52                                   struct user_desc __user *user_desc);
 53 
 54 extern int ptrace_set_thread_area(struct task_struct *child, int idx,
 55                                   struct user_desc __user *user_desc);
 56 
 57 extern int arch_switch_tls(struct task_struct *to);
 58 
 59 #else
 60 
 61 #define PT_REGS_R8(r) UPT_R8(&(r)->regs)
 62 #define PT_REGS_R9(r) UPT_R9(&(r)->regs)
 63 #define PT_REGS_R10(r) UPT_R10(&(r)->regs)
 64 #define PT_REGS_R11(r) UPT_R11(&(r)->regs)
 65 #define PT_REGS_R12(r) UPT_R12(&(r)->regs)
 66 #define PT_REGS_R13(r) UPT_R13(&(r)->regs)
 67 #define PT_REGS_R14(r) UPT_R14(&(r)->regs)
 68 #define PT_REGS_R15(r) UPT_R15(&(r)->regs)
 69 
 70 #include <asm/errno.h>
 71 
 72 static inline int ptrace_get_thread_area(struct task_struct *child, int idx,
 73                                          struct user_desc __user *user_desc)
 74 {
 75         return -ENOSYS;
 76 }
 77 
 78 static inline int ptrace_set_thread_area(struct task_struct *child, int idx,
 79                                          struct user_desc __user *user_desc)
 80 {
 81         return -ENOSYS;
 82 }
 83 
 84 extern long arch_prctl(struct task_struct *task, int option,
 85                        unsigned long __user *addr);
 86 
 87 #endif
 88 
 89 #define user_stack_pointer(regs) PT_REGS_SP(regs)
 90 
 91 extern void arch_switch_to(struct task_struct *to);
 92 
 93 #endif /* __UM_X86_PTRACE_H */
 94 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php