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

Linux Cross Reference
Linux/include/asm-alpha/ptrace.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 /* JRP - These are the values provided to a0-a2 by PALcode */
 41         unsigned long trap_a0;
 42         unsigned long trap_a1;
 43         unsigned long trap_a2;
 44 /* These are saved by PAL-code: */
 45         unsigned long ps;
 46         unsigned long pc;
 47         unsigned long gp;
 48         unsigned long r16;
 49         unsigned long r17;
 50         unsigned long r18;
 51 };
 52 
 53 /*
 54  * This is the extended stack used by signal handlers and the context
 55  * switcher: it's pushed after the normal "struct pt_regs".
 56  */
 57 struct switch_stack {
 58         unsigned long r9;
 59         unsigned long r10;
 60         unsigned long r11;
 61         unsigned long r12;
 62         unsigned long r13;
 63         unsigned long r14;
 64         unsigned long r15;
 65         unsigned long r26;
 66         unsigned long fp[32];   /* fp[31] is fpcr */
 67 };
 68 
 69 #ifdef __KERNEL__
 70 #define user_mode(regs) (((regs)->ps & 8) != 0)
 71 #define instruction_pointer(regs) ((regs)->pc)
 72 extern void show_regs(struct pt_regs *);
 73 #endif
 74 
 75 #endif
 76 

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

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.