root/include/asm-alpha/ptrace.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _ASMAXP_PTRACE_H
   2 #define _ASMAXP_PTRACE_H
   3 
   4 
   5 /*
   6  * This struct defines the way the registers are stored on the
   7  * kernel stack during a system call or other kernel entry
   8  *
   9  * NOTE! I want to minimize the overhead of system calls, so this
  10  * struct has as little information as possible.  I does not have
  11  *
  12  *  - floating point regs: the kernel doesn't change those
  13  *  - r9-15: saved by the C compiler
  14  *
  15  * This makes "fork()" and "exec()" a bit more complex, but should
  16  * give us low system call latency.
  17  */
  18 
  19 struct pt_regs {
  20         unsigned long r0;
  21         unsigned long r1;
  22         unsigned long r2;
  23         unsigned long r3;
  24         unsigned long r4;
  25         unsigned long r5;
  26         unsigned long r6;
  27         unsigned long r7;
  28         unsigned long r8;
  29         unsigned long r19;
  30         unsigned long r20;
  31         unsigned long r21;
  32         unsigned long r22;
  33         unsigned long r23;
  34         unsigned long r24;
  35         unsigned long r25;
  36         unsigned long r26;
  37         unsigned long r27;
  38         unsigned long r28;
  39         unsigned long hae;
  40 /* These are saved by PAL-code: */
  41         unsigned long ps;
  42         unsigned long pc;
  43         unsigned long gp;
  44         unsigned long r16;
  45         unsigned long r17;
  46         unsigned long r18;
  47 };
  48 
  49 /*
  50  * This is the extended stack used by signal handlers and the context
  51  * switcher: it's pushed after the normal "struct pt_regs".
  52  */
  53 struct switch_stack {
  54         unsigned long r9;
  55         unsigned long r10;
  56         unsigned long r11;
  57         unsigned long r12;
  58         unsigned long r13;
  59         unsigned long r14;
  60         unsigned long r15;
  61         unsigned long r26;
  62         unsigned long fp[32];   /* fp[31] is fpcr */
  63 };
  64 
  65 #ifdef __KERNEL__
  66 #define user_mode(regs) ((regs)->ps & 8)
  67 #define instruction_pointer(regs) ((regs)->pc)
  68 extern void show_regs(struct pt_regs *);
  69 #endif
  70 
  71 #endif

/* [previous][next][first][last][top][bottom][index][help] */