1*35155Smarc /* 2*35155Smarc 3*35155Smarc * Copyright (c) 1984, 1985, 1986 AT&T 4*35155Smarc * All Rights Reserved 5*35155Smarc 6*35155Smarc * THIS IS UNPUBLISHED PROPRIETARY SOURCE 7*35155Smarc * CODE OF AT&T. 8*35155Smarc * The copyright notice above does not 9*35155Smarc * evidence any actual or intended 10*35155Smarc * publication of such source code. 11*35155Smarc 12*35155Smarc */ 13*35155Smarc /* @(#)mode.h 1.1 */ 14*35155Smarc /* 15*35155Smarc * UNIX shell 16*35155Smarc * S. R. Bourne 17*35155Smarc * Rewritten by David Korn 18*35155Smarc * 19*35155Smarc */ 20*35155Smarc 21*35155Smarc 22*35155Smarc 23*35155Smarc /* command tree for tretyp */ 24*35155Smarc #define COMBITS 4 25*35155Smarc #define COMMSK ((1<<COMBITS)-1) 26*35155Smarc #define COMSCAN (01<<COMBITS) 27*35155Smarc #define FPRS (01<<COMBITS) 28*35155Smarc #define FINT (02<<COMBITS) 29*35155Smarc #define FAMP (04<<COMBITS) 30*35155Smarc #define FTMP (010<<COMBITS) 31*35155Smarc #define FPIN (020<<COMBITS) 32*35155Smarc #define FPOU (040<<COMBITS) 33*35155Smarc #define FPCL (0100<<COMBITS) 34*35155Smarc #define FCMD (0200<<COMBITS) 35*35155Smarc #define FCOMSUB (0400<<COMBITS) 36*35155Smarc 37*35155Smarc #define TCOM 0 38*35155Smarc #define TPAR 1 39*35155Smarc #define TFIL 2 40*35155Smarc #define TLST 3 41*35155Smarc #define TIF 4 42*35155Smarc #define TWH 5 43*35155Smarc #define TUN 6 44*35155Smarc #define TSW 7 45*35155Smarc #define TAND 8 46*35155Smarc #define TORF 9 47*35155Smarc #define TFORK 10 48*35155Smarc #define TFOR 11 49*35155Smarc #define TSELECT 12 50*35155Smarc #define TTIME 13 51*35155Smarc #define TSETIO 14 52*35155Smarc #define TPROC 15 53*35155Smarc 54*35155Smarc 55*35155Smarc /* heap storage */ 56*35155Smarc /* this node is a proforma for those that follow */ 57*35155Smarc struct trenod 58*35155Smarc { 59*35155Smarc int tretyp; 60*35155Smarc IOPTR treio; 61*35155Smarc }; 62*35155Smarc 63*35155Smarc 64*35155Smarc struct dolnod 65*35155Smarc { 66*35155Smarc DOLPTR dolnxt; 67*35155Smarc int doluse; 68*35155Smarc char *dolarg[1]; 69*35155Smarc }; 70*35155Smarc 71*35155Smarc struct forknod 72*35155Smarc { 73*35155Smarc int forktyp; 74*35155Smarc IOPTR forkio; 75*35155Smarc TREPTR forktre; 76*35155Smarc }; 77*35155Smarc 78*35155Smarc struct comnod 79*35155Smarc { 80*35155Smarc int comtyp; 81*35155Smarc IOPTR comio; 82*35155Smarc ARGPTR comarg; 83*35155Smarc ARGPTR comset; 84*35155Smarc int comline; 85*35155Smarc }; 86*35155Smarc 87*35155Smarc struct ifnod 88*35155Smarc { 89*35155Smarc int iftyp; 90*35155Smarc TREPTR iftre; 91*35155Smarc TREPTR thtre; 92*35155Smarc TREPTR eltre; 93*35155Smarc }; 94*35155Smarc 95*35155Smarc struct whnod 96*35155Smarc { 97*35155Smarc int whtyp; 98*35155Smarc TREPTR whtre; 99*35155Smarc TREPTR dotre; 100*35155Smarc }; 101*35155Smarc 102*35155Smarc struct fornod 103*35155Smarc { 104*35155Smarc int fortyp; 105*35155Smarc TREPTR fortre; 106*35155Smarc char *fornam; 107*35155Smarc COMPTR forlst; 108*35155Smarc }; 109*35155Smarc 110*35155Smarc struct swnod 111*35155Smarc { 112*35155Smarc int swtyp; 113*35155Smarc char *swarg; 114*35155Smarc REGPTR swlst; 115*35155Smarc }; 116*35155Smarc 117*35155Smarc struct regnod 118*35155Smarc { 119*35155Smarc ARGPTR regptr; 120*35155Smarc TREPTR regcom; 121*35155Smarc REGPTR regnxt; 122*35155Smarc }; 123*35155Smarc 124*35155Smarc struct parnod 125*35155Smarc { 126*35155Smarc int partyp; 127*35155Smarc TREPTR partre; 128*35155Smarc }; 129*35155Smarc 130*35155Smarc struct lstnod 131*35155Smarc { 132*35155Smarc int lsttyp; 133*35155Smarc TREPTR lstlef; 134*35155Smarc TREPTR lstrit; 135*35155Smarc }; 136*35155Smarc 137*35155Smarc 138*35155Smarc struct procnod 139*35155Smarc { 140*35155Smarc int proctyp; 141*35155Smarc BLKPTR proctre; 142*35155Smarc char *procnam; 143*35155Smarc long procloc; 144*35155Smarc }; 145*35155Smarc 146*35155Smarc 147*35155Smarc #define FORKTYPE (sizeof(struct forknod)) 148*35155Smarc #define COMTYPE (sizeof(struct comnod)) 149*35155Smarc #define IFTYPE (sizeof(struct ifnod)) 150*35155Smarc #define WHTYPE (sizeof(struct whnod)) 151*35155Smarc #define FORTYPE (sizeof(struct fornod)) 152*35155Smarc #define SWTYPE (sizeof(struct swnod)) 153*35155Smarc #define REGTYPE (sizeof(struct regnod)) 154*35155Smarc #define PARTYPE (sizeof(struct parnod)) 155*35155Smarc #define LSTTYPE (sizeof(struct lstnod)) 156*35155Smarc #define DOLTYPE (sizeof(struct dolnod)) 157*35155Smarc #define PROCTYPE (sizeof(struct procnod)) 158