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

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

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

  1 #ifndef _PPC_PTRACE_H
  2 #define _PPC_PTRACE_H
  3 
  4 /*
  5  * This struct defines the way the registers are stored on the
  6  * kernel stack during a system call or other kernel entry.
  7  *
  8  * this should only contain volatile regs
  9  * since we can keep non-volatile in the thread_struct
 10  * should set this up when only volatiles are saved
 11  * by intr code.
 12  *
 13  * Since this is going on the stack, *CARE MUST BE TAKEN* to insure
 14  * that the overall structure is a multiple of 16 bytes in length.
 15  *
 16  * Note that the offsets of the fields in this struct correspond with
 17  * the PT_* values below.  This simplifies arch/ppc/kernel/ptrace.c.
 18  */
 19 
 20 #ifndef __ASSEMBLY__
 21 struct pt_regs {
 22         unsigned long gpr[32];
 23         unsigned long nip;
 24         unsigned long msr;
 25         unsigned long orig_gpr3;        /* Used for restarting system calls */
 26         unsigned long ctr;
 27         unsigned long link;
 28         unsigned long xer;
 29         unsigned long ccr;
 30         unsigned long mq;               /* 601 only (not used at present) */
 31                                         /* Used on APUS to hold IPL value. */
 32         unsigned long trap;             /* Reason for being here */
 33         unsigned long dar;              /* Fault registers */
 34         unsigned long dsisr;
 35         unsigned long result;           /* Result of a system call */
 36 };
 37 #endif
 38 
 39 #ifdef __KERNEL__
 40 #define STACK_FRAME_OVERHEAD    16      /* size of minimum stack frame */
 41 
 42 /* Size of stack frame allocated when calling signal handler. */
 43 #define __SIGNAL_FRAMESIZE      64
 44 
 45 #define instruction_pointer(regs) ((regs)->nip)
 46 #define user_mode(regs) (((regs)->msr & MSR_PR) != 0)
 47 
 48 #endif /* __KERNEL__ */
 49 
 50 /*
 51  * Offsets used by 'ptrace' system call interface.
 52  * These can't be changed without breaking binary compatibility
 53  * with MkLinux, etc.
 54  */
 55 #define PT_R0   0
 56 #define PT_R1   1
 57 #define PT_R2   2
 58 #define PT_R3   3
 59 #define PT_R4   4
 60 #define PT_R5   5
 61 #define PT_R6   6
 62 #define PT_R7   7
 63 #define PT_R8   8
 64 #define PT_R9   9
 65 #define PT_R10  10
 66 #define PT_R11  11
 67 #define PT_R12  12
 68 #define PT_R13  13
 69 #define PT_R14  14
 70 #define PT_R15  15
 71 #define PT_R16  16
 72 #define PT_R17  17
 73 #define PT_R18  18
 74 #define PT_R19  19
 75 #define PT_R20  20
 76 #define PT_R21  21
 77 #define PT_R22  22
 78 #define PT_R23  23
 79 #define PT_R24  24
 80 #define PT_R25  25
 81 #define PT_R26  26
 82 #define PT_R27  27
 83 #define PT_R28  28
 84 #define PT_R29  29
 85 #define PT_R30  30
 86 #define PT_R31  31
 87 
 88 #define PT_NIP  32
 89 #define PT_MSR  33
 90 #ifdef __KERNEL__
 91 #define PT_ORIG_R3 34
 92 #endif
 93 #define PT_CTR  35
 94 #define PT_LNK  36
 95 #define PT_XER  37
 96 #define PT_CCR  38
 97 #define PT_MQ   39
 98 
 99 #define PT_FPR0 48      /* each FP reg occupies 2 slots in this space */
100 #define PT_FPR31 (PT_FPR0 + 2*31)
101 #define PT_FPSCR (PT_FPR0 + 2*32 + 1)
102 
103 #endif
104 
105 

~ [ 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.