Annotation of coherent/b/bin/db/i386/i386db0.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * db/i386/i386db0.c
                      3:  * A debugger.
                      4:  * i386 global variables and tables.
                      5:  */
                      6: 
                      7: #include <sys/ptrace.h>
                      8: #include "i386db.h"
                      9: 
                     10: /*
                     11:  * Global variables.
                     12:  */
                     13: BIN    bin = { TRAP };                 /* Breakpoint instruction       */
                     14: int    NDP_flag;                       /* NDP instructions are usable  */
                     15: ADDR_T sys_add;                        /* Address of op after syscall  */
                     16: int    sys_flag;                       /* Executing a system call      */
                     17: BIN    sys_in;                         /* Instruction after sys call   */
                     18: UREG   ureg;                           /* Child program registers      */
                     19: 
                     20: /*
                     21:  * Format strings table.
                     22:  */
                     23: char *formtab[4][4] ={
                     24:        "%4d",                          /* "bd" */
                     25:        "%3u",                          /* "bu" */
                     26:        "%04o",                         /* "bo" */
                     27:        "%02X",                         /* "bx" */
                     28:        "%6d",                          /* "wd" */
                     29:        "%5u",                          /* "wu" */
                     30:        "%07o",                         /* "wo" */
                     31:        "%04X",                         /* "wx" */
                     32:        "%10ld",                        /* "ld" */
                     33:        "%11lu",                        /* "lu" */
                     34:        "%012lo",                       /* "lo" */
                     35:        "%08lX",                        /* "lx" */
                     36:        "%8ld",                         /* "vd" */
                     37:        "%8lu",                         /* "vu" */
                     38:        "%09lo",                        /* "vo" */
                     39:        "%06lX"                         /* "vx" */
                     40: };
                     41: 
                     42: /*
                     43:  * Register name table.
                     44:  * Map register names to pseudo-offsets in user segment; cf. <sys/ptrace.h>.
                     45:  * This is used to obtain offsets for ptrace() calls to read/write registers.
                     46:  * The register name lookup code in i386db1.c/is_reg() also recognizes
                     47:  * "xy" as the word register equivalent of dword register "exy".
                     48:  * Code using this table does not reference the copy of the child registers
                     49:  * kept in ureg.
                     50:  * The order in the table corresponds to the order of printing for :r.
                     51:  * Other PTRACE_* entries could be recognized but currently are not.
                     52:  */
                     53: REGNAME        reg_name[NREGS] = {
                     54:        { RF_16,        "cs",   PTRACE_CS },
                     55:        { RF_1632,      "eip",  PTRACE_EIP },
                     56:        { RF_16,        "ss",   PTRACE_SS },
                     57:        { RF_1632,      "fw",   PTRACE_EFL },
                     58:        { RF_16,        "ds",   PTRACE_DS },
                     59:        { RF_16,        "es",   PTRACE_ES },
                     60:        { RF_16,        "fs",   PTRACE_FS },
                     61:        { RF_16,        "gs",   PTRACE_GS },
                     62:        { RF_1632,      "eax",  PTRACE_EAX },
                     63:        { RF_1632,      "ebx",  PTRACE_EBX },
                     64:        { RF_1632,      "ecx",  PTRACE_ECX },
                     65:        { RF_1632,      "edx",  PTRACE_EDX },
                     66:        { RF_1632,      "esp",  PTRACE_UESP },          /* UESP */
                     67:        { RF_1632,      "ebp",  PTRACE_EBP },
                     68:        { RF_1632,      "edi",  PTRACE_EDI },
                     69:        { RF_1632,      "esi",  PTRACE_ESI },
                     70:        { RF_NDP,       "st0",  PTRACE_FP_ST0 },
                     71:        { RF_NDP,       "st1",  PTRACE_FP_ST1 },
                     72:        { RF_NDP,       "st2",  PTRACE_FP_ST2 },
                     73:        { RF_NDP,       "st3",  PTRACE_FP_ST3 },
                     74:        { RF_NDP,       "st4",  PTRACE_FP_ST4 },
                     75:        { RF_NDP,       "st5",  PTRACE_FP_ST5 },
                     76:        { RF_NDP,       "st6",  PTRACE_FP_ST6 },
                     77:        { RF_NDP,       "st7",  PTRACE_FP_ST7 }
                     78: };
                     79: 
                     80: #if    0
                     81: /*
                     82:  * Table of system calls.
                     83:  */
                     84: char *sysitab[NMICALL] ={
                     85:        NULL,
                     86:        "exit",
                     87:        "fork",
                     88:        "read",
                     89:        "write",
                     90:        "open",
                     91:        "close",
                     92:        "wait",
                     93:        "creat",
                     94:        "link",
                     95:        "unlink",
                     96:        "exece",
                     97:        "chdir",
                     98:        NULL,
                     99:        "mknod",
                    100:        "chmod",
                    101:        "chown",
                    102:        "brk",
                    103:        "stat",
                    104:        "lseek",
                    105:        "getpid",
                    106:        "mount",
                    107:        "umount",
                    108:        "setuid",
                    109:        "getuid",
                    110:        "stime",
                    111:        "ptrace",
                    112:        "alarm",
                    113:        "fstat",
                    114:        "pause",
                    115:        "utime",
                    116:        NULL,
                    117:        NULL,
                    118:        "access",
                    119:        "nice",
                    120:        "ftime",
                    121:        "sync",
                    122:        "kill",
                    123:        NULL,
                    124:        NULL,
                    125:        NULL,
                    126:        "dup",
                    127:        "pipe",
                    128:        "times",
                    129:        "profil",
                    130:        "unique",
                    131:        "setgid",
                    132:        "getgid",
                    133:        "signal",
                    134:        NULL,
                    135:        NULL,
                    136:        "acct",
                    137:        NULL,
                    138:        NULL,
                    139:        "ioctl",
                    140:        NULL,
                    141:        "getegid",
                    142:        "geteuid",
                    143:        NULL,
                    144:        NULL,
                    145:        "umask",
                    146:        "chroot",
                    147:        "setpgrp",
                    148:        "getpgrp",
                    149:        "sload",
                    150:        "suload",
                    151:        "fcntl",
                    152:        "poll",
                    153:        "msgctl",
                    154:        "msgget",
                    155:        "msgrcv",
                    156:        "msgsnd",
                    157:        "alarm2",
                    158:        "tick"
                    159: };
                    160: #endif
                    161: 
                    162: /* end of db/i386/i386db0.c */

unix.superglobalmegacorp.com

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