|
|
1.1 ! root 1: ! 2: /* @(#)cdb.h 2.4 */ ! 3: #include "basic.h" ! 4: ! 5: extern char *malloc(); ! 6: extern free(); ! 7: extern long lseek(); ! 8: extern int errno; ! 9: extern char *strchr(), *strrchr(), *strcpy(), *strncpy(), *strcat(), *strncat(); ! 10: extern int strlen(), strspn(); ! 11: extern long time(); ! 12: extern char *getenv(); ! 13: ! 14: #ifdef SYSIII ! 15: #define cbVarMax 8 ! 16: #endif ! 17: #ifdef BSD41 ! 18: #define cbVarMax 20 ! 19: #endif ! 20: ! 21: #include "sym.h" ! 22: #include "tk.h" ! 23: #include "ty.h" ! 24: ! 25: #define chNull '\0' ! 26: ! 27: typedef struct PDS { /* procedure descriptor */ ! 28: long isym; /* beginning of symbols */ ! 29: ADRT adrStart; /* memory address of beginning of proc */ ! 30: char *sbProc; /* extra space to build up name */ ! 31: } PDR, *pPDR; ! 32: #define cbPDR sizeof(PDR) ! 33: #define ipdNil -1 ! 34: ! 35: typedef struct FDS { /* file descriptor */ ! 36: long isym; /* beginning of symbols */ ! 37: ADRT adrStart; /* memory address of beginning of file */ ! 38: char *sbFile; /* extra space to build up name */ ! 39: bits fHasDecl : 1; /* they DO have a .d file */ ! 40: bits fWarned : 1; /* they have been warned about age problems */ ! 41: short ipd; /* start of procedures for this file */ ! 42: ushort ilnMac; /* number of lines in file (0 if don't know) */ ! 43: uint *rgLn; /* the line pointer array (if any) */ ! 44: } FDR, *pFDR; ! 45: #define cbFDR sizeof(FDR) ! 46: #define ilnNil 0 ! 47: ! 48: typedef struct BPS { /* breakpoint */ ! 49: ADRT adr; /* address of breakpoint */ ! 50: uint inst; /* instruction that lives there */ ! 51: short count; /* number of times to hit before stop */ ! 52: char sbBp[100]; /* commands for bp */ ! 53: } BPR, *pBPR; ! 54: #define cbBPR sizeof(BPR) ! 55: #define ibpNil -1 ! 56: #define ibpContinue -2 ! 57: ! 58: /* display format */ ! 59: #define dfNil 0 ! 60: #define dfDecimal 1 ! 61: #define dfUnsigned 2 ! 62: #define dfOctal 3 ! 63: #define dfHex 4 ! 64: #define dfFFloat 5 ! 65: #define dfEFloat 6 ! 66: #define dfGFloat 7 ! 67: #define dfChar 8 ! 68: #define dfByte 9 ! 69: #define dfPStr 10 ! 70: #define dfStr 11 ! 71: #define dfProc 12 ! 72: #define dfAddr 13 ! 73: #define dfStruct 14 ! 74: #define dfType 15 ! 75: #define dfEnum 16 ! 76: typedef int DFE, *pDFE; ! 77: ! 78: typedef struct MODES { /* used for passing around output format info */ ! 79: DFE df; /* display format */ ! 80: short len; /* length of item (if meaningful) */ ! 81: short cnt; /* number of times to apply the format */ ! 82: short imap; /* selects map set to use (normally 0) */ ! 83: } MODER, *pMODER; ! 84: #define cbMODER sizeof(MODER) ! 85: #define modeNil ((pMODER)0) ! 86: ! 87: /* format control for PrintPos */ ! 88: #define fmtNil 0 /* we don't want nothin' printed */ ! 89: #define fmtFile 0x01 /* print the file name */ ! 90: #define fmtProc 0x02 /* print the procedure name */ ! 91: #define fmtLn 0x04 /* print the line number */ ! 92: #define fmtPrint 0x08 /* print the current line */ ! 93: #define fmtEol 0x10 /* print an end-of-line */ ! 94: #define fmtSave 0x20 /* do NOT reset vifd,vipd,viln,vslop */ ! 95: ! 96: typedef struct MAPS { ! 97: long b1; ! 98: long e1; ! 99: long f1; ! 100: long b2; ! 101: long e2; ! 102: long f2; ! 103: short fn; /* file number that goes with this map */ ! 104: } MAPR, *pMAPR; ! 105: #define fnNil -1 ! 106: ! 107: /* command types */ ! 108: #define cmdNil 0 ! 109: #define cmdPrint 1 /* print lines */ ! 110: #define cmdDisplay 2 /* display the contents of a variable */ ! 111: #define cmdUpArrow 3 /* display contents of previous location */ ! 112: #define cmdLineSingle 4 /* single step - follow proc calls */ ! 113: #define cmdProcSingle 5 /* single step - treat procs as single line */ ! 114: typedef int CMDE, *pCMDE; ! 115: ! 116: /* auto-check states */ ! 117: #define asNil 0 /* auto checking is not being used */ ! 118: #define asActive 1 /* auto checking IS being used */ ! 119: #define asSuspended 2 /* being used, but temporarily suspended */ ! 120: typedef int ASE, *pASE; ! 121: ! 122: typedef struct { /* signal action record */ ! 123: /* fields are named this way so that all false is a good default */ ! 124: bits fNoStop : 1; /* if true, do not stop on signal */ ! 125: bits fNoReport : 1; /* if true, do not report non-stop signal */ ! 126: bits fEatSig : 1; /* if true, eat non-stop signal */ ! 127: } SAR, *pSAR; ! 128: #define cbSAR (sizeof(SAR)) ! 129: #define saNil ((pSAR)0) ! 130: ! 131: /* address spaces for looking at child */ ! 132: #define spaceText 1 ! 133: #define spaceData 2 ! 134: ! 135: #define pidNil 0 ! 136: ! 137: /* requests for `access' */ ! 138: #define accRead 0 ! 139: #define accWrite 1 ! 140: ! 141: /* requests for `ptrace' system call */ ! 142: #define ptChild 0 ! 143: #define ptReadI 1 ! 144: #define ptReadD 2 ! 145: #define ptReadUser 3 ! 146: #define ptWriteI 4 ! 147: #define ptWriteD 5 ! 148: #define ptWriteUser 6 ! 149: #define ptResume 7 ! 150: #define ptTerm 8 ! 151: #define ptSingle 9 ! 152: ! 153: #include "ext.h" /* external declarations for all `export'ed procedures */ ! 154: ! 155: /* these were from `#include <fcntl.h>' on a System III */ ! 156: #define O_RDONLY 0 ! 157: #define O_WRONLY 1 ! 158: #define O_RDWR 2
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.