linux/arch/m68k/include/asm/ptrace.h
<<
>>
Prefs
   1#ifndef _M68K_PTRACE_H
   2#define _M68K_PTRACE_H
   3
   4#define PT_D1      0
   5#define PT_D2      1
   6#define PT_D3      2
   7#define PT_D4      3
   8#define PT_D5      4
   9#define PT_D6      5
  10#define PT_D7      6
  11#define PT_A0      7
  12#define PT_A1      8
  13#define PT_A2      9
  14#define PT_A3      10
  15#define PT_A4      11
  16#define PT_A5      12
  17#define PT_A6      13
  18#define PT_D0      14
  19#define PT_USP     15
  20#define PT_ORIG_D0 16
  21#define PT_SR      17
  22#define PT_PC      18
  23
  24#ifndef __ASSEMBLY__
  25
  26/* this struct defines the way the registers are stored on the
  27   stack during a system call. */
  28
  29struct pt_regs {
  30  long     d1;
  31  long     d2;
  32  long     d3;
  33  long     d4;
  34  long     d5;
  35  long     a0;
  36  long     a1;
  37  long     a2;
  38  long     d0;
  39  long     orig_d0;
  40  long     stkadj;
  41#ifdef CONFIG_COLDFIRE
  42  unsigned format :  4; /* frame format specifier */
  43  unsigned vector : 12; /* vector offset */
  44  unsigned short sr;
  45  unsigned long  pc;
  46#else
  47  unsigned short sr;
  48  unsigned long  pc;
  49  unsigned format :  4; /* frame format specifier */
  50  unsigned vector : 12; /* vector offset */
  51#endif
  52};
  53
  54/*
  55 * This is the extended stack used by signal handlers and the context
  56 * switcher: it's pushed after the normal "struct pt_regs".
  57 */
  58struct switch_stack {
  59        unsigned long  d6;
  60        unsigned long  d7;
  61        unsigned long  a3;
  62        unsigned long  a4;
  63        unsigned long  a5;
  64        unsigned long  a6;
  65        unsigned long  retpc;
  66};
  67
  68/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
  69#define PTRACE_GETREGS            12
  70#define PTRACE_SETREGS            13
  71#define PTRACE_GETFPREGS          14
  72#define PTRACE_SETFPREGS          15
  73
  74#define PTRACE_SINGLEBLOCK      33      /* resume execution until next branch */
  75
  76#ifdef __KERNEL__
  77
  78#ifndef PS_S
  79#define PS_S  (0x2000)
  80#define PS_M  (0x1000)
  81#endif
  82
  83#define user_mode(regs) (!((regs)->sr & PS_S))
  84#define instruction_pointer(regs) ((regs)->pc)
  85#define profile_pc(regs) instruction_pointer(regs)
  86extern void show_regs(struct pt_regs *);
  87
  88/*
  89 * These are defined as per linux/ptrace.h.
  90 */
  91struct task_struct;
  92
  93#define arch_has_single_step()  (1)
  94extern void user_enable_single_step(struct task_struct *);
  95extern void user_disable_single_step(struct task_struct *);
  96
  97#ifdef CONFIG_MMU
  98#define arch_has_block_step()   (1)
  99extern void user_enable_block_step(struct task_struct *);
 100#endif
 101
 102#endif /* __KERNEL__ */
 103#endif /* __ASSEMBLY__ */
 104#endif /* _M68K_PTRACE_H */
 105
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.