linux/arch/h8300/include/asm/ptrace.h
<<
>>
Prefs
   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
   7struct 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
  34extern long h8300_get_reg(struct task_struct *task, int regno);
  35extern int h8300_put_reg(struct task_struct *task, int regno,
  36                         unsigned long data);
  37
  38#endif /* __ASSEMBLY__ */
  39#endif /* _H8300_PTRACE_H */
  40