root/arch/h8300/include/asm/ptrace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _H8300_PTRACE_H
   3 #define _H8300_PTRACE_H
   4 
   5 #include <uapi/asm/ptrace.h>
   6 
   7 struct task_struct;
   8 
   9 #ifndef __ASSEMBLY__
  10 #ifndef PS_S
  11 #define PS_S  (0x10)
  12 #endif
  13 
  14 #if defined(CONFIG_CPU_H8300H)
  15 #define H8300_REGS_NO 11
  16 #endif
  17 #if defined(CONFIG_CPU_H8S)
  18 #define H8300_REGS_NO 12
  19 #endif
  20 
  21 #define arch_has_single_step()  (1)
  22 
  23 #define user_mode(regs) (!((regs)->ccr & PS_S))
  24 #define instruction_pointer(regs) ((regs)->pc)
  25 #define profile_pc(regs) instruction_pointer(regs)
  26 #define user_stack_pointer(regs) ((regs)->sp)
  27 #define current_pt_regs() ((struct pt_regs *) \
  28         (THREAD_SIZE + (unsigned long)current_thread_info()) - 1)
  29 #define signal_pt_regs() ((struct pt_regs *)current->thread.esp0)
  30 #define current_user_stack_pointer() rdusp()
  31 #define task_pt_regs(task) \
  32         ((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE) - 1)
  33 
  34 extern long h8300_get_reg(struct task_struct *task, int regno);
  35 extern int h8300_put_reg(struct task_struct *task, int regno,
  36                          unsigned long data);
  37 
  38 #endif /* __ASSEMBLY__ */
  39 #endif /* _H8300_PTRACE_H */

/* [<][>][^][v][top][bottom][index][help] */