Annotation of 42BSD/ucb/pascal/pdx/defs.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1982 Regents of the University of California */
                      2: 
                      3: /* static char sccsid[] = "@(#)defs.h 1.2 1/18/82"; */
                      4: 
                      5: /*
                      6:  * Global debugger defines.
                      7:  *
                      8:  * All files include this header.
                      9:  */
                     10: 
                     11: #include <stdio.h>
                     12: 
                     13: /*
                     14:  * Since C does not allow forward referencing of types,
                     15:  * all the global types are declared here.
                     16:  */
                     17: 
                     18: #define LOCAL static
                     19: #define NIL 0
                     20: 
                     21: typedef int BOOLEAN;
                     22: 
                     23: #define FALSE 0
                     24: #define TRUE 1
                     25: 
                     26: typedef unsigned int ADDRESS;          /* object code addresses */
                     27: typedef short LINENO;                  /* source file line numbers */
                     28: typedef struct sym SYM;                        /* symbol information structure */
                     29: typedef struct symtab SYMTAB;          /* symbol table */
                     30: typedef struct node NODE;              /* expression tree node */
                     31: typedef short OP;                      /* tree operator */
                     32: typedef struct opinfo OPINFO;          /* tree operator information table */
                     33: typedef unsigned int WORD;             /* machine word */
                     34: typedef unsigned char BYTE;            /* machine byte */
                     35: typedef struct frame FRAME;            /* runtime activation record */
                     36: 
                     37: /*
                     38:  * Definitions of standard C library routines that aren't in the
                     39:  * standard I/O library, but which are generally useful.
                     40:  */
                     41: 
                     42: extern long atol();            /* ascii to long */
                     43: extern double atof();          /* ascii to floating point */
                     44: extern char *mktemp();         /* make a temporary file name */
                     45: 
                     46: /*
                     47:  * Definitions of library routines.
                     48:  */
                     49: 
                     50: char *cmdname;                 /* name of command for error messages */
                     51: char *errfilename;             /* current file associated with error */
                     52: short errlineno;               /* line number associated with error */
                     53: 
                     54: error();                       /* print an error message */
                     55: panic();                       /* print error message and exit */
                     56: short numerrors();             /* return number of errors since last call */
                     57: 
                     58: /*
                     59:  * defintions for doing memory allocation
                     60:  */
                     61: 
                     62: extern char *malloc();
                     63: 
                     64: #define alloc(n, type) ((type *) malloc((unsigned) (n) * sizeof(type)))
                     65: #define dispose(p)     { free((char *) p); p = NIL; }
                     66: 
                     67: /*
                     68:  * macros for doing freads + fwrites
                     69:  */
                     70: 
                     71: #define get(fp, var)   fread((char *) &(var), sizeof(var), 1, fp)
                     72: #define put(fp, var)   fwrite((char *) &(var), sizeof(var), 1, fp)
                     73: 
                     74: /*
                     75:  * string definitions
                     76:  */
                     77: 
                     78: extern char *strcpy();
                     79: extern int strlen();
                     80: 
                     81: #define strdup(s)              strcpy(malloc((unsigned) strlen(s) + 1), s)
                     82: #define streq(s1, s2)  (strcmp(s1, s2) == 0)

unix.superglobalmegacorp.com

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