Annotation of coherent/f/usr/include.78/sys/ptrace.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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