Annotation of researchv9/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: #ifdef BSD4_2
                     95: #define        shalloc         malloc
                     96: #define        shfree          free
                     97: #endif
                     98: 
                     99: extern char                            *shalloc();
                    100: extern char                            *make();
                    101: extern char                            *movstr();
                    102: extern char                            *movstrn();
                    103: extern char                            *quotedstring();
                    104: extern char                            *strf();
                    105: extern struct trenod   *cmd();
                    106: extern struct trenod   *makefork();
                    107: extern struct namnod   *lookup();
                    108: extern struct namnod   *findnam();
                    109: extern struct dolnod   *useargs();
                    110: extern float                   expr();
                    111: extern char                            *catpath();
                    112: extern char                            *getpath();
                    113: extern char                            *nextpath();
                    114: extern char                            **scan();
                    115: extern char                            *mactrim();
                    116: extern char                            *macro();
                    117: extern char                            *execs();
                    118: extern char                            *copyto();
                    119: extern int                             exname();
                    120: extern char                            *staknam();
                    121: extern int                             printnam();
                    122: extern int                             printro();
                    123: extern int                             printexp();
                    124: extern char                            **setenv();
                    125: extern long                            time();
                    126: extern void                            prs_2buff();
                    127: extern void                            prc_buff();
                    128: extern void                            prs_buff();
                    129: extern void                            prn_buff();
                    130: extern void                            prs_cntl();
                    131: extern void                            flushb();
                    132: extern long                            lseek();
                    133: 
                    134: #define        attrib(n,f)             (n->namflg |= f)
                    135: #ifdef CRAY
                    136: #define        round(a,b)              ((((a)+(b))-1)&~((b)-1))
                    137: #define                sround(a,b)             ((char *)((int)(a+(b-1))&077777777))
                    138: #else
                    139: #define        round(a,b)              (((int)(((char *)(a)+b)-1))&~((b)-1))
                    140: #define                sround                  round
                    141: #endif
                    142: #define        closepipe(x)    (close(x[INPIPE]), close(x[OTPIPE]))
                    143: #define        eq(a,b)                 (cf(a,b)==0)
                    144: #define        max(a,b)                ((a)>(b)?(a):(b))
                    145: #define        assert(x)               ;
                    146: 
                    147: /* temp files and io */
                    148: extern int                             output;
                    149: extern int                             ioset;
                    150: extern struct ionod            *iotemp;        /* files to be deleted sometime */
                    151: extern struct ionod            *fiotemp;       /* function files to be deleted sometime */
                    152: extern struct ionod            *iopend;        /* documents waiting to be read at NL */
                    153: extern struct fdsave   fdmap[];
                    154: 
                    155: 
                    156: /* substitution */
                    157: extern int                             dolc;
                    158: extern char                            **dolv;
                    159: extern struct dolnod   *argfor;
                    160: extern struct argnod   *gchain;
                    161: 
                    162: /* stak stuff */
                    163: #include               "stak.h"
                    164: 
                    165: /* string constants */
                    166: extern char                            atline[];
                    167: extern char                            readmsg[];
                    168: extern char                            colon[];
                    169: extern char                            minus[];
                    170: extern char                            nullstr[];
                    171: extern char                            sptbnl[];
                    172: extern char                            unexpected[];
                    173: extern char                            endoffile[];
                    174: extern char                            synmsg[];
                    175: 
                    176: /* name tree and words */
                    177: extern struct sysnod   reserved[];
                    178: extern int                             no_reserved;
                    179: extern struct sysnod   commands[];
                    180: extern int                             no_commands;
                    181: 
                    182: extern int                             wdval;
                    183: extern int                             wdnum;
                    184: extern int                             fndef;
                    185: extern struct argnod                   *wdarg;
                    186: extern int                             wdset;
                    187: extern BOOL                            reserv;
                    188: 
                    189: /* prompting */
                    190: extern char                            stdprompt[];
                    191: extern char                            supprompt[];
                    192: extern char                            profile[];
                    193: 
                    194: /* built in names */
                    195: extern struct namnod   fngnod;
                    196: extern struct namnod   cdpnod;
                    197: extern struct namnod   ifsnod;
                    198: extern struct namnod   histnod;
                    199: extern struct namnod   homenod;
                    200: extern struct namnod   mailnod;
                    201: extern struct namnod   pathnod;
                    202: extern struct namnod   ps1nod;
                    203: extern struct namnod   ps2nod;
                    204: extern struct namnod   acctnod;
                    205: 
                    206: /* special names */
                    207: extern char                            flagadr[];
                    208: extern char                            *pcsadr;
                    209: extern char                            *pidadr;
                    210: extern char                            *cmdadr;
                    211: 
                    212: extern char                            defpath[];
                    213: 
                    214: /* names always present */
                    215: extern char                            mailname[];
                    216: extern char                            homename[];
                    217: extern char                            pathname[];
                    218: extern char                            cdpname[];
                    219: extern char                            ifsname[];
                    220: extern char                            histname[];
                    221: extern char                            ps1name[];
                    222: extern char                            ps2name[];
                    223: extern char                            acctname[];
                    224: 
                    225: /* transput */
                    226: extern char                            tmpout[];
                    227: extern char                            *tmpnam;
                    228: extern int                             serial;
                    229: 
                    230: #define                TMPNAM          7
                    231: 
                    232: extern struct fileblk  *standin;
                    233: 
                    234: #define        input           (standin->fdes)
                    235: #define        eof                     (standin->feof)
                    236: 
                    237: extern int                             peekc;
                    238: extern int                             peekn;
                    239: extern int                             histfd;
                    240: extern char                            *comdiv;
                    241: extern char                            devnull[];
                    242: 
                    243: /* flags */
                    244: #define                noexec          01
                    245: #define                sysflg          01
                    246: #define                intflg          02
                    247: #define                prompt          04
                    248: #define                setflg          010
                    249: #define                errflg          020
                    250: #define                ttyflg          040
                    251: #define                forked          0100
                    252: #define                oneflg          0200
                    253: #define                protflg         0400
                    254: #define                waiting         01000
                    255: #define                stdflg          02000
                    256: #define                STDFLG          's'
                    257: #define                execpr          04000
                    258: #define                readpr          010000
                    259: #define                keyflg          020000
                    260: #define                nofngflg        0200000
                    261: #define                exportflg       0400000
                    262: 
                    263: extern long                            flags;
                    264: extern int                             rwait;  /* flags read waiting */
                    265: 
                    266: /* error exits from various parts of shell */
                    267: #include       <setjmp.h>
                    268: extern jmp_buf                 subshell;
                    269: extern jmp_buf                 errshell;
                    270: 
                    271: /* fault handling */
                    272: #include       "brkincr.h"
                    273: 
                    274: extern unsigned                        brkincr;
                    275: #define        MINTRAP         0
                    276: #define        MAXTRAP         32
                    277: 
                    278: #define        TRAPSET         2
                    279: #define        SIGSET          4
                    280: #define        SIGMOD          8
                    281: #define        SIGCAUGHT       16
                    282: 
                    283: extern int                             fault();
                    284: extern BOOL                            trapnote;
                    285: extern char                            *trapcom[];
                    286: extern BOOL                            trapflg[];
                    287: 
                    288: /* name tree and words */
                    289: extern char                            **environ;
                    290: extern char                            numbuf[];
                    291: extern char                            export[];
                    292: extern char                            duperr[];
                    293: 
                    294: /* execflgs */
                    295: extern int                             exitval;
                    296: extern int                             retval;
                    297: extern BOOL                            execbrk;
                    298: extern int                             loopcnt;
                    299: extern int                             breakcnt;
                    300: extern int                             funcnt;
                    301: 
                    302: /* messages */
                    303: extern char                            mailmsg[];
                    304: extern char                            coredump[];
                    305: extern char                            badopt[];
                    306: extern char                            badparam[];
                    307: extern char                            unset[];
                    308: extern char                            badsub[];
                    309: extern char                            nospace[];
                    310: extern char                            nostack[];
                    311: extern char                            notfound[];
                    312: extern char                            notbltin[];
                    313: extern char                            badtrap[];
                    314: extern char                            baddir[];
                    315: extern char                            badshift[];
                    316: extern char                            execpmsg[];
                    317: extern char                            notid[];
                    318: extern char                            badcreate[];
                    319: extern char                            nofork[];
                    320: extern char                            noswap[];
                    321: extern char                            piperr[];
                    322: extern char                            badopen[];
                    323: extern char                            badnum[];
                    324: extern char                            arglist[];
                    325: extern char                            txtbsy[];
                    326: extern char                            toobig[];
                    327: extern char                            badexec[];
                    328: extern char                            badfile[];
                    329: extern char                            badreturn[];
                    330: extern char                            badexport[];
                    331: extern char                            badunset[];
                    332: extern char                            nohome[];
                    333: extern char                            badperm[];
                    334: extern char                            badfname[];
                    335: 
                    336: /*     'builtin' error messages        */
                    337: 
                    338: extern char                            btest[];
                    339: extern char                            badop[];
                    340: 
                    341: /*     fork constant   */
                    342: 
                    343: #define        FORKLIM         32
                    344: 
                    345: extern address                 end[];
                    346: 
                    347: #include       "sctype.h"
                    348: 
                    349: extern int                             wasintr;        /* used to tell if break or delete is hit
                    350:                                                                         *  while executing a wait
                    351:                                                                         */
                    352: extern int                             eflag;
                    353: 
                    354: 
                    355: /*
                    356:  * Find out if it is time to go away.
                    357:  * `trapnote' is set to SIGSET when fault is seen and
                    358:  * no trap has been set.
                    359:  */
                    360: 
                    361: #define                sigchk()        if (trapnote & SIGSET)  \
                    362:                                                        exitsh(exitval ? exitval : SIGFAIL)
                    363: 
                    364: #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.