Annotation of 43BSDReno/bin/sh/mode.h, revision 1.1

1.1     ! root        1: /*     mode.h  4.2     88/04/24        */
        !             2: 
        !             3: #
        !             4: /*
        !             5:  *     UNIX shell
        !             6:  */
        !             7: 
        !             8: 
        !             9: #define BYTESPERWORD   (sizeof(char *))
        !            10: 
        !            11: TYPE char      CHAR;
        !            12: TYPE char      BOOL;
        !            13: TYPE int       UFD;
        !            14: TYPE int       INT;
        !            15: TYPE float     REAL;
        !            16: TYPE char      *ADDRESS;
        !            17: TYPE long int  L_INT;
        !            18: TYPE int       VOID;
        !            19: TYPE unsigned  POS;
        !            20: TYPE char      *STRING;
        !            21: TYPE char      MSG[];
        !            22: TYPE int       PIPE[];
        !            23: TYPE char      *STKPTR;
        !            24: TYPE char      *BYTPTR;
        !            25: 
        !            26: STRUCT stat    STATBUF;        /* defined in /usr/sys/stat.h */
        !            27: STRUCT blk     *BLKPTR;
        !            28: STRUCT fileblk FILEBLK;
        !            29: STRUCT filehdr FILEHDR;
        !            30: STRUCT fileblk *FILE;
        !            31: UNION  trenod  *TREPTR;
        !            32: STRUCT forknod *FORKPTR;
        !            33: STRUCT comnod  *COMPTR;
        !            34: STRUCT swnod   *SWPTR;
        !            35: STRUCT regnod  *REGPTR;
        !            36: STRUCT parnod  *PARPTR;
        !            37: STRUCT ifnod   *IFPTR;
        !            38: STRUCT whnod   *WHPTR;
        !            39: STRUCT fornod  *FORPTR;
        !            40: STRUCT lstnod  *LSTPTR;
        !            41: STRUCT argnod  *ARGPTR;
        !            42: STRUCT dolnod  *DOLPTR;
        !            43: STRUCT ionod   *IOPTR;
        !            44: STRUCT namnod  NAMNOD;
        !            45: STRUCT namnod  *NAMPTR;
        !            46: STRUCT sysnod  SYSNOD;
        !            47: STRUCT sysnod  *SYSPTR;
        !            48: STRUCT sysnod  SYSTAB[];
        !            49: #define NIL    ((char*)0)
        !            50: 
        !            51: 
        !            52: /* the following nonsense is required
        !            53:  * because casts turn an Lvalue
        !            54:  * into an Rvalue so two cheats
        !            55:  * are necessary, one for each context.
        !            56:  */
        !            57: /* union { int _cheat;}; */
        !            58: /* #define Lcheat(a)   ((a)._cheat) */
        !            59: #define Lcheat(a)      (*(int *)&(a))
        !            60: #define Rcheat(a)      ( (int  ) (a))
        !            61: 
        !            62: 
        !            63: /* address puns for storage allocation */
        !            64: UNION {
        !            65:        FORKPTR _forkptr;
        !            66:        COMPTR  _comptr;
        !            67:        PARPTR  _parptr;
        !            68:        IFPTR   _ifptr;
        !            69:        WHPTR   _whptr;
        !            70:        FORPTR  _forptr;
        !            71:        LSTPTR  _lstptr;
        !            72:        BLKPTR  _blkptr;
        !            73:        NAMPTR  _namptr;
        !            74:        BYTPTR  _bytptr;
        !            75:        }       address;
        !            76: 
        !            77: 
        !            78: /* for functions that do not return values */
        !            79: /*
        !            80: struct void {INT vvvvvvvv;};
        !            81: */
        !            82: 
        !            83: 
        !            84: /* heap storage */
        !            85: struct blk {
        !            86:        BLKPTR  word;
        !            87: };
        !            88: 
        !            89: #define        BUFSIZ  64
        !            90: struct fileblk {
        !            91:        UFD     fdes;
        !            92:        POS     flin;
        !            93:        BOOL    feof;
        !            94:        CHAR    fsiz;
        !            95:        STRING  fnxt;
        !            96:        STRING  fend;
        !            97:        STRING  *feval;
        !            98:        FILE    fstak;
        !            99:        CHAR    fbuf[BUFSIZ];
        !           100: };
        !           101: 
        !           102: /* for files not used with file descriptors */
        !           103: struct filehdr {
        !           104:        UFD     fdes;
        !           105:        POS     flin;
        !           106:        BOOL    feof;
        !           107:        CHAR    fsiz;
        !           108:        STRING  fnxt;
        !           109:        STRING  fend;
        !           110:        STRING  *feval;
        !           111:        FILE    fstak;
        !           112:        CHAR    _fbuf[1];
        !           113: };
        !           114: 
        !           115: struct sysnod {
        !           116:        STRING  sysnam;
        !           117:        INT     sysval;
        !           118: };
        !           119: 
        !           120: /* dummy for access only */
        !           121: struct argnod {
        !           122:        ARGPTR  argnxt;
        !           123:        CHAR    argval[1];
        !           124: };
        !           125: 
        !           126: struct dolnod {
        !           127:        DOLPTR  dolnxt;
        !           128:        INT     doluse;
        !           129:        CHAR    dolarg[1];
        !           130: };
        !           131: 
        !           132: struct forknod {
        !           133:        INT     forktyp;
        !           134:        IOPTR   forkio;
        !           135:        TREPTR  forktre;
        !           136: };
        !           137: 
        !           138: struct comnod {
        !           139:        INT     comtyp;
        !           140:        IOPTR   comio;
        !           141:        ARGPTR  comarg;
        !           142:        ARGPTR  comset;
        !           143: };
        !           144: 
        !           145: struct ifnod {
        !           146:        INT     iftyp;
        !           147:        TREPTR  iftre;
        !           148:        TREPTR  thtre;
        !           149:        TREPTR  eltre;
        !           150: };
        !           151: 
        !           152: struct whnod {
        !           153:        INT     whtyp;
        !           154:        TREPTR  whtre;
        !           155:        TREPTR  dotre;
        !           156: };
        !           157: 
        !           158: struct fornod {
        !           159:        INT     fortyp;
        !           160:        TREPTR  fortre;
        !           161:        STRING  fornam;
        !           162:        COMPTR  forlst;
        !           163: };
        !           164: 
        !           165: struct swnod {
        !           166:        INT     swtyp;
        !           167:        STRING  swarg;
        !           168:        REGPTR  swlst;
        !           169: };
        !           170: 
        !           171: struct regnod {
        !           172:        ARGPTR  regptr;
        !           173:        TREPTR  regcom;
        !           174:        REGPTR  regnxt;
        !           175: };
        !           176: 
        !           177: struct parnod {
        !           178:        INT     partyp;
        !           179:        TREPTR  partre;
        !           180: };
        !           181: 
        !           182: struct lstnod {
        !           183:        INT     lsttyp;
        !           184:        TREPTR  lstlef;
        !           185:        TREPTR  lstrit;
        !           186: };
        !           187: 
        !           188: struct ionod {
        !           189:        INT     iofile;
        !           190:        STRING  ioname;
        !           191:        IOPTR   ionxt;
        !           192:        IOPTR   iolst;
        !           193: };
        !           194: 
        !           195: #define        FORKTYPE        (sizeof(struct forknod))
        !           196: #define        COMTYPE         (sizeof(struct comnod))
        !           197: #define        IFTYPE          (sizeof(struct ifnod))
        !           198: #define        WHTYPE          (sizeof(struct whnod))
        !           199: #define        FORTYPE         (sizeof(struct fornod))
        !           200: #define        SWTYPE          (sizeof(struct swnod))
        !           201: #define        REGTYPE         (sizeof(struct regnod))
        !           202: #define        PARTYPE         (sizeof(struct parnod))
        !           203: #define        LSTTYPE         (sizeof(struct lstnod))
        !           204: #define        IOTYPE          (sizeof(struct ionod))
        !           205: 
        !           206: /* this node is a proforma for those that precede it */
        !           207: union trenod {
        !           208:        INT     tretyp;
        !           209:        struct { INT dummyy; IOPTR treio;} treio;
        !           210:        struct forknod  forknod;
        !           211:        struct comnod   comnod;
        !           212:        struct ifnod    ifnod;
        !           213:        struct whnod    whnod;
        !           214:        struct fornod   fornod;
        !           215:        struct swnod    swnod;
        !           216:        struct lstnod   lstnod;
        !           217:        struct parnod   parnod;
        !           218: };

unix.superglobalmegacorp.com

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