Annotation of coherent/a/usr/include.b4ps2/sys/ptrace.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Coherent.
                      3:  * Process trace.
                      4:  */
                      5: #ifndef         PTRACE_H
                      6: #define         PTRACE_H
                      7: #include <sys/types.h>
                      8: 
                      9: /*
                     10:  * Structure used for communication between parent and child.
                     11:  */
                     12: struct ptrace {
                     13:        int      pt_req;                /* Request */
                     14:        int      pt_pid;                /* Process id */
                     15:        vaddr_t  pt_addr;               /* Address */
                     16:        int      pt_data;               /* Data */
                     17:        int      pt_errs;               /* Error status */
                     18:        int      pt_rval;               /* Return value */
                     19:        int      pt_busy;               /* In use */
                     20:        GATE     pt_gate;               /* Gate */
                     21: };
                     22: 
                     23: 
                     24: /*
                     25:  * Commands for ptrace() system call.  First argument is one of these.
                     26:  */
                     27: #define PTRACE_SETUP   0       /* init called by child */
                     28: #define PTRACE_RD_TXT  1       /* parent reads child text */
                     29: #define PTRACE_RD_DAT  2       /* parent reads child data */
                     30: #define PTRACE_RD_USR  3       /* parent reads child u area */
                     31: #define PTRACE_WR_TXT  4       /* parent writes child text */
                     32: #define PTRACE_WR_DAT  5       /* parent writes child data */
                     33: #define PTRACE_WR_USR  6       /* parent writes child u area */
                     34: #define PTRACE_RESUME  7       /* resume child, maybe fake signal to child */
                     35: #define PTRACE_TERM    8       /* terminate child */
                     36: #define PTRACE_SSTEP   9       /* single-step child, maybe fake sig to child */
                     37: 
                     38: /*
                     39:  * Pseudo offsets of registers in USR segment.
                     40:  *
                     41:  * When ptracing a process, the parent can access the register set
                     42:  * of the child using PTRACE_RD_USR and PTRACE_WR_USR commands and
                     43:  * an addr (third argument to the system call) from the following list.
                     44:  *
                     45:  * There are two ESP values available:
                     46:  *     PTRACE_UESP selects the user stack pointer - value from the child
                     47:  *       process saved on entry to, e.g., the debug trap handler.
                     48:  *       PTRACE_SS gives access to the corresponding stack selector.
                     49:  *     PTRACE_ESP is the stack pointer used by the trap handler itself.
                     50:  *
                     51:  * PTRACE_ERR will have the fault or trap number in case of exceptions.
                     52:  *
                     53:  * PTRACE_SIG is the current signal number.
                     54:  *
                     55:  * PTRACE_UEND is the size of accessible u area plus one - addresses
                     56:  *   greater than or equal to this value are not valid in ptrace
                     57:  *   read/write of USR segment.
                     58:  */
                     59: /* CPU trap frame - see sys/reg.h and ieeefp.h (struct _fpstackframe) */
                     60: #define        PTRACE_GS       0
                     61: #define        PTRACE_FS       4
                     62: #define        PTRACE_ES       8
                     63: #define        PTRACE_DS       12
                     64: #define        PTRACE_EDI      16
                     65: #define        PTRACE_ESI      20
                     66: #define        PTRACE_EBP      24
                     67: #define        PTRACE_ESP      28
                     68: #define        PTRACE_EBX      32
                     69: #define        PTRACE_EDX      36
                     70: #define        PTRACE_ECX      40
                     71: #define        PTRACE_EAX      44
                     72: #define PTRACE_TRAPNO  48
                     73: #define        PTRACE_ERR      52
                     74: #define        PTRACE_EIP      56
                     75: #define        PTRACE_CS       60
                     76: #define        PTRACE_EFL      64
                     77: #define        PTRACE_UESP     68
                     78: #define        PTRACE_SS       72
                     79: #define        PTRACE_SIG      76
                     80: 
                     81: /* NDP context - see ieeefp.h (struct _fpstate) */
                     82: #define        PTRACE_FP_CW    80
                     83: #define        PTRACE_FP_SW    84
                     84: #define        PTRACE_FP_TAG   88
                     85: #define        PTRACE_FP_EIP   92
                     86: #define        PTRACE_FP_CS    96
                     87: #define        PTRACE_FP_FOO   100
                     88: #define        PTRACE_FP_FS    104
                     89: #define        PTRACE_FP_ST0   108
                     90: #define        PTRACE_FP_ST1   118
                     91: #define        PTRACE_FP_ST2   128
                     92: #define        PTRACE_FP_ST3   138
                     93: #define        PTRACE_FP_ST4   148
                     94: #define        PTRACE_FP_ST5   158
                     95: #define        PTRACE_FP_ST6   168
                     96: #define        PTRACE_FP_ST7   178
                     97: #define        PTRACE_FP_STAT  188
                     98: 
                     99: /* Debug context */
                    100: #define        PTRACE_DR0      192
                    101: #define        PTRACE_DR1      196
                    102: #define        PTRACE_DR2      200
                    103: #define        PTRACE_DR3      204
                    104: #define        PTRACE_DR4      208
                    105: #define        PTRACE_DR5      212
                    106: #define        PTRACE_DR6      216
                    107: #define        PTRACE_DR7      220
                    108: 
                    109: #define        PTRACE_UEND     224     /* Offsets >= UEND are not valid */
                    110: 
                    111: #ifdef KERNEL
                    112: /*
                    113:  * Global variables.
                    114:  */
                    115: extern struct  ptrace pts;                     /* Ptrace structure */
                    116: 
                    117: #endif
                    118: 
                    119: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.