root/include/asm-mips/ptrace.h

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

INCLUDED FROM


   1 /*
   2  * linux/include/asm-mips/ptrace.h
   3  *
   4  * This file is subject to the terms and conditions of the GNU General Public
   5  * License.  See the file "COPYING" in the main directory of this archive
   6  * for more details.
   7  *
   8  * Copyright (C) 1994, 1995 by Waldorf GMBH
   9  * written by Ralf Baechle
  10  *
  11  * Machine dependent structs and defines to help the user use
  12  * the ptrace system call.
  13  */
  14 #ifndef __ASM_MIPS_PTRACE_H
  15 #define __ASM_MIPS_PTRACE_H
  16 
  17 /*
  18  * This struct defines the way the registers are stored on the stack during a
  19  * system call/exception. As usual the registers k0/k1 aren't being saved.
  20  */
  21 struct pt_regs {
  22         /*
  23          * Pad bytes for argument save space on the stack
  24          * 20/40 Bytes for 32/64 bit code
  25          */
  26         unsigned long pad0[5];
  27 
  28         /*
  29          * saved main processor registers
  30          */
  31         long            reg1,  reg2,  reg3,  reg4,  reg5,  reg6,  reg7;
  32         long     reg8,  reg9, reg10, reg11, reg12, reg13, reg14, reg15;
  33         long    reg16, reg17, reg18, reg19, reg20, reg21, reg22, reg23;
  34         long    reg24, reg25,               reg28, reg29, reg30, reg31;
  35 
  36         /*
  37          * Saved special registers
  38          */
  39         long    lo;
  40         long    hi;
  41 
  42         /*
  43          * saved cp0 registers
  44          */
  45         unsigned long cp0_status;
  46         unsigned long cp0_epc;
  47         unsigned long cp0_cause;
  48 
  49         /*
  50          * Some goodies...
  51          */
  52         unsigned long interrupt;
  53         long orig_reg2;
  54         long pad1;
  55 };
  56 
  57 #ifdef __KERNEL__
  58 
  59 /*
  60  * Does the process account for user or for system time?
  61  */
  62 #if defined (__R4000__)
  63 
  64 #define user_mode(regs) ((regs)->cp0_status & 0x10)
  65 
  66 #else /* !defined (__R4000__) */
  67 
  68 #define user_mode(regs) (!((regs)->cp0_status & 0x8))
  69 
  70 #endif /* !defined (__R4000__) */
  71 
  72 #define instruction_pointer(regs) ((regs)->cp0_epc)
  73 extern void show_regs(struct pt_regs *);
  74 #endif
  75 
  76 #endif /* __ASM_MIPS_PTRACE_H */

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