Annotation of researchv8dc/cmd/sh/defs.h, revision 1.1.1.1

1.1       root        1: /*     @(#)defs.h      1.7     */
                      2: /*
                      3:  *     UNIX shell
                      4:  */
                      5: 
                      6: 
                      7: /* error exits from various parts of shell */
                      8: #define        ERROR           1
                      9: #define        SYNBAD          2
                     10: #define        SIGFAIL         2000
                     11: #define                SIGFLG          0200
                     12: 
                     13: /* command tree */
                     14: #define        FPRS            0x0100
                     15: #define        FINT            0x0200
                     16: #define        FAMP            0x0400
                     17: #define        FPIN            0x0800
                     18: #define        FPOU            0x1000
                     19: #define        FPCL            0x2000
                     20: #define        FCMD            0x4000
                     21: #define        COMMSK          0x00F0
                     22: #define                CNTMSK          0x000F
                     23: 
                     24: #define        TCOM            0x0000
                     25: #define        TPAR            0x0010
                     26: #define        TFIL            0x0020
                     27: #define        TLST            0x0030
                     28: #define        TIF                     0x0040
                     29: #define        TWH                     0x0050
                     30: #define        TUN                     0x0060
                     31: #define        TSW                     0x0070
                     32: #define        TAND            0x0080
                     33: #define        TORF            0x0090
                     34: #define        TFORK           0x00A0
                     35: #define        TFOR            0x00B0
                     36: #define                TFND            0x00C0
                     37: 
                     38: /* execute table */
                     39: #define        SYSSET          1
                     40: #define        SYSCD           2
                     41: #define        SYSEXEC         3
                     42: #define        SYSNEWGRP       4
                     43: #define        SYSTRAP         5
                     44: #define        SYSEXIT         6
                     45: #define        SYSSHFT         7
                     46: #define        SYSWAIT         8
                     47: #define        SYSCONT         9
                     48: #define        SYSBREAK        10
                     49: #define        SYSEVAL         11
                     50: #define        SYSDOT          12
                     51: #define        SYSTIMES        14
                     52: #define        SYSXPORT        15
                     53: #define        SYSNULL         16
                     54: #define        SYSREAD         17
                     55: 
                     56: #define        SYSUMASK        20
                     57: 
                     58: #define        SYSECHO         22
                     59: #define                SYSPWD          24
                     60: #define        SYSRETURN       25
                     61: #define                SYSUNS          26
                     62: #define                SYSMEM          27
                     63: #define                SYSWHATIS       28
                     64: #define                SYSBLTIN        29
                     65: 
                     66: /* used for input and output of shell */
                     67: #define        INIO            19
                     68: 
                     69: /*io nodes*/
                     70: #define        USERIO          10
                     71: #define        IOUFD           15
                     72: #define        IODOC           16
                     73: #define        IOPUT           32
                     74: #define        IOAPP           64
                     75: #define        IOMOV           128
                     76: #define        IORDW           256
                     77: #define        INPIPE          0
                     78: #define        OTPIPE          1
                     79: 
                     80: /* arg list terminator */
                     81: #define        ENDARGS         0
                     82: 
                     83: #include       "mac.h"
                     84: #include       "mode.h"
                     85: #include       "name.h"
                     86: #include       <signal.h>
                     87: 
                     88: 
                     89: /*     error catching */
                     90: extern int             errno;
                     91: 
                     92: /* result type declarations */
                     93: 
                     94: #define        alloc           malloc
                     95: 
                     96: extern char                            *alloc();
                     97: extern char                            *make();
                     98: extern char                            *movstr();
                     99: extern char                            *movstrn();
                    100: extern char                            *quotedstring();
                    101: extern char                            *strf();
                    102: extern struct trenod   *cmd();
                    103: extern struct trenod   *makefork();
                    104: extern struct namnod   *lookup();
                    105: extern struct namnod   *findnam();
                    106: extern struct dolnod   *useargs();
                    107: extern float                   expr();
                    108: extern char                            *catpath();
                    109: extern char                            *getpath();
                    110: extern char                            *nextpath();
                    111: extern char                            **scan();
                    112: extern char                            *mactrim();
                    113: extern char                            *macro();
                    114: extern char                            *execs();
                    115: extern char                            *copyto();
                    116: extern int                             exname();
                    117: extern char                            *staknam();
                    118: extern int                             printnam();
                    119: extern int                             printro();
                    120: extern int                             printexp();
                    121: extern char                            **setenv();
                    122: extern long                            time();
                    123: 
                    124: #define        attrib(n,f)             (n->namflg |= f)
                    125: #define        round(a,b)              (((int)(((char *)(a)+b)-1))&~((b)-1))
                    126: #define        closepipe(x)    (close(x[INPIPE]), close(x[OTPIPE]))
                    127: #define        eq(a,b)                 (cf(a,b)==0)
                    128: #define        max(a,b)                ((a)>(b)?(a):(b))
                    129: #define        assert(x)               ;
                    130: 
                    131: /* temp files and io */
                    132: extern int                             output;
                    133: extern int                             ioset;
                    134: extern struct ionod            *iotemp;        /* files to be deleted sometime */
                    135: extern struct ionod            *fiotemp;       /* function files to be deleted sometime */
                    136: extern struct ionod            *iopend;        /* documents waiting to be read at NL */
                    137: extern struct fdsave   fdmap[];
                    138: 
                    139: 
                    140: /* substitution */
                    141: extern int                             dolc;
                    142: extern char                            **dolv;
                    143: extern struct dolnod   *argfor;
                    144: extern struct argnod   *gchain;
                    145: 
                    146: /* stak stuff */
                    147: #include               "stak.h"
                    148: 
                    149: /* string constants */
                    150: extern char                            atline[];
                    151: extern char                            readmsg[];
                    152: extern char                            colon[];
                    153: extern char                            minus[];
                    154: extern char                            nullstr[];
                    155: extern char                            sptbnl[];
                    156: extern char                            unexpected[];
                    157: extern char                            endoffile[];
                    158: extern char                            synmsg[];
                    159: 
                    160: /* name tree and words */
                    161: extern struct sysnod   reserved[];
                    162: extern int                             no_reserved;
                    163: extern struct sysnod   commands[];
                    164: extern int                             no_commands;
                    165: 
                    166: extern int                             wdval;
                    167: extern int                             wdnum;
                    168: extern int                             fndef;
                    169: extern struct argnod                   *wdarg;
                    170: extern int                             wdset;
                    171: extern BOOL                            reserv;
                    172: 
                    173: /* prompting */
                    174: extern char                            stdprompt[];
                    175: extern char                            supprompt[];
                    176: extern char                            profile[];
                    177: 
                    178: /* built in names */
                    179: extern struct namnod   fngnod;
                    180: extern struct namnod   cdpnod;
                    181: extern struct namnod   ifsnod;
                    182: extern struct namnod   histnod;
                    183: extern struct namnod   homenod;
                    184: extern struct namnod   mailnod;
                    185: extern struct namnod   pathnod;
                    186: extern struct namnod   ps1nod;
                    187: extern struct namnod   ps2nod;
                    188: extern struct namnod   acctnod;
                    189: 
                    190: /* special names */
                    191: extern char                            flagadr[];
                    192: extern char                            *pcsadr;
                    193: extern char                            *pidadr;
                    194: extern char                            *cmdadr;
                    195: 
                    196: extern char                            defpath[];
                    197: 
                    198: /* names always present */
                    199: extern char                            mailname[];
                    200: extern char                            homename[];
                    201: extern char                            pathname[];
                    202: extern char                            cdpname[];
                    203: extern char                            ifsname[];
                    204: extern char                            histname[];
                    205: extern char                            ps1name[];
                    206: extern char                            ps2name[];
                    207: extern char                            acctname[];
                    208: 
                    209: /* transput */
                    210: extern char                            tmpout[];
                    211: extern char                            *tmpnam;
                    212: extern int                             serial;
                    213: 
                    214: #define                TMPNAM          7
                    215: 
                    216: extern struct fileblk  *standin;
                    217: 
                    218: #define        input           (standin->fdes)
                    219: #define        eof                     (standin->feof)
                    220: 
                    221: extern int                             peekc;
                    222: extern int                             peekn;
                    223: extern int                             histfd;
                    224: extern char                            *comdiv;
                    225: extern char                            devnull[];
                    226: 
                    227: /* flags */
                    228: #define                noexec          01
                    229: #define                sysflg          01
                    230: #define                intflg          02
                    231: #define                prompt          04
                    232: #define                setflg          010
                    233: #define                errflg          020
                    234: #define                ttyflg          040
                    235: #define                forked          0100
                    236: #define                oneflg          0200
                    237: #define                protflg         0400
                    238: #define                waiting         01000
                    239: #define                stdflg          02000
                    240: #define                STDFLG          's'
                    241: #define                execpr          04000
                    242: #define                readpr          010000
                    243: #define                keyflg          020000
                    244: #define                nofngflg        0200000
                    245: #define                exportflg       0400000
                    246: 
                    247: extern long                            flags;
                    248: extern int                             rwait;  /* flags read waiting */
                    249: 
                    250: /* error exits from various parts of shell */
                    251: #include       <setjmp.h>
                    252: extern jmp_buf                 subshell;
                    253: extern jmp_buf                 errshell;
                    254: 
                    255: /* fault handling */
                    256: #include       "brkincr.h"
                    257: 
                    258: extern unsigned                        brkincr;
                    259: #define        MINTRAP         0
                    260: #define        MAXTRAP         32
                    261: 
                    262: #define        TRAPSET         2
                    263: #define        SIGSET          4
                    264: #define        SIGMOD          8
                    265: #define        SIGCAUGHT       16
                    266: 
                    267: extern int                             fault();
                    268: extern BOOL                            trapnote;
                    269: extern char                            *trapcom[];
                    270: extern BOOL                            trapflg[];
                    271: 
                    272: /* name tree and words */
                    273: extern char                            **environ;
                    274: extern char                            numbuf[];
                    275: extern char                            export[];
                    276: extern char                            duperr[];
                    277: 
                    278: /* execflgs */
                    279: extern int                             exitval;
                    280: extern int                             retval;
                    281: extern BOOL                            execbrk;
                    282: extern int                             loopcnt;
                    283: extern int                             breakcnt;
                    284: extern int                             funcnt;
                    285: 
                    286: /* messages */
                    287: extern char                            mailmsg[];
                    288: extern char                            coredump[];
                    289: extern char                            badopt[];
                    290: extern char                            badparam[];
                    291: extern char                            unset[];
                    292: extern char                            badsub[];
                    293: extern char                            nospace[];
                    294: extern char                            nostack[];
                    295: extern char                            notfound[];
                    296: extern char                            notbltin[];
                    297: extern char                            badtrap[];
                    298: extern char                            baddir[];
                    299: extern char                            badshift[];
                    300: extern char                            execpmsg[];
                    301: extern char                            notid[];
                    302: extern char                            badcreate[];
                    303: extern char                            nofork[];
                    304: extern char                            noswap[];
                    305: extern char                            piperr[];
                    306: extern char                            badopen[];
                    307: extern char                            badnum[];
                    308: extern char                            arglist[];
                    309: extern char                            txtbsy[];
                    310: extern char                            toobig[];
                    311: extern char                            badexec[];
                    312: extern char                            badfile[];
                    313: extern char                            badreturn[];
                    314: extern char                            badexport[];
                    315: extern char                            badunset[];
                    316: extern char                            nohome[];
                    317: extern char                            badperm[];
                    318: extern char                            badfname[];
                    319: 
                    320: /*     'builtin' error messages        */
                    321: 
                    322: extern char                            btest[];
                    323: extern char                            badop[];
                    324: 
                    325: /*     fork constant   */
                    326: 
                    327: #define        FORKLIM         32
                    328: 
                    329: extern address                 end[];
                    330: 
                    331: #include       "ctype.h"
                    332: 
                    333: extern int                             wasintr;        /* used to tell if break or delete is hit
                    334:                                                                         *  while executing a wait
                    335:                                                                         */
                    336: extern int                             eflag;
                    337: 
                    338: 
                    339: /*
                    340:  * Find out if it is time to go away.
                    341:  * `trapnote' is set to SIGSET when fault is seen and
                    342:  * no trap has been set.
                    343:  */
                    344: 
                    345: #define                sigchk()        if (trapnote & SIGSET)  \
                    346:                                                        exitsh(exitval ? exitval : SIGFAIL)
                    347: 
                    348: #define        exitset()       retval = exitval

unix.superglobalmegacorp.com

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