1*35182Smarc /*
2*35182Smarc 
3*35182Smarc  *      Copyright (c) 1984, 1985, 1986 AT&T
4*35182Smarc  *      All Rights Reserved
5*35182Smarc 
6*35182Smarc  *      THIS IS UNPUBLISHED PROPRIETARY SOURCE
7*35182Smarc  *      CODE OF AT&T.
8*35182Smarc  *      The copyright notice above does not
9*35182Smarc  *      evidence any actual or intended
10*35182Smarc  *      publication of such source code.
11*35182Smarc 
12*35182Smarc  */
13*35182Smarc /* @(#)builtins.h	1.1 */
14*35182Smarc 
15*35182Smarc /* table of shell builtins */
16*35182Smarc /* currently can not be more than SYSMAX */
17*35182Smarc 
18*35182Smarc #define SYSMAX		255
19*35182Smarc /* The following commands up to SYSSPECIAL treat parameter lists specially */
20*35182Smarc /* They do not evaluate in-line with command substitution */
21*35182Smarc /* Also, commands below SYSNULL cause a script to abort on errors */
22*35182Smarc #define SYSEXEC		1
23*35182Smarc #define SYSLOGIN	2
24*35182Smarc #define SYSFC		3
25*35182Smarc #define SYSEVAL		4
26*35182Smarc #define SYSDOT 		5
27*35182Smarc #define SYSRETURN	6
28*35182Smarc #define SYSRDONLY	7
29*35182Smarc #define SYSXPORT 	8
30*35182Smarc #define SYSTYPESET	9
31*35182Smarc #define SYSNULL 	10
32*35182Smarc #define	SYSSHFT		11
33*35182Smarc #define SYSCD 		12
34*35182Smarc #define SYSSPECIAL	12	/* end of special commands */
35*35182Smarc #define SYSEXIT		13
36*35182Smarc #define SYSULIMIT	14
37*35182Smarc #define SYSCONT 	15
38*35182Smarc #define SYSBREAK 	16
39*35182Smarc #define SYSTRAP 	17
40*35182Smarc #define SYSTIMES 	18
41*35182Smarc #define SYSUMASK	19
42*35182Smarc #define SYSWAIT		20
43*35182Smarc #define SYSREAD		21
44*35182Smarc #define SYSSET		22
45*35182Smarc #define SYSUNSET 	23
46*35182Smarc #define SYSLET		24
47*35182Smarc #define SYSALIAS	25
48*35182Smarc #define SYSUNALIAS	26
49*35182Smarc #define SYSWHENCE	27
50*35182Smarc #define SYSTEST		28
51*35182Smarc #define SYSPRINT	29
52*35182Smarc #define SYSECHO		30
53*35182Smarc #define SYSPWD		31
54*35182Smarc #define SYSFG		32
55*35182Smarc #define SYSBG		33
56*35182Smarc #define	SYSJOBS		34
57*35182Smarc #define SYSKILL		35
58*35182Smarc #ifdef apollo
59*35182Smarc #define	SYSINLIB	36
60*35182Smarc #define	SYSINPROCESS	37
61*35182Smarc #endif	/* apollo */
62*35182Smarc 
63*35182Smarc /* structure for builtin shell variable names and aliases */
64*35182Smarc struct name_value
65*35182Smarc {
66*35182Smarc #ifdef apollo
67*35182Smarc 	/* you can't readonly pointers */
68*35182Smarc 	char	nv_name[12];
69*35182Smarc 	char	nv_value[20];
70*35182Smarc #else
71*35182Smarc 	char	*nv_name;
72*35182Smarc 	char	*nv_value;
73*35182Smarc #endif	/* apollo */
74*35182Smarc };
75*35182Smarc 
76*35182Smarc /* The following defines are coordinated with data in msg.c */
77*35182Smarc 
78*35182Smarc #define	PATHNOD		(bltin_nodes)
79*35182Smarc #define PS1NOD		(bltin_nodes+1)
80*35182Smarc #define PS2NOD		(bltin_nodes+2)
81*35182Smarc #define IFSNOD		(bltin_nodes+3)
82*35182Smarc #define PWDNOD		(bltin_nodes+4)
83*35182Smarc #define HOME		(bltin_nodes+5)
84*35182Smarc #define MAILNOD		(bltin_nodes+6)
85*35182Smarc #define REPLYNOD	(bltin_nodes+7)
86*35182Smarc #define SHELLNOD	(bltin_nodes+8)
87*35182Smarc #define EDITNOD		(bltin_nodes+9)
88*35182Smarc #define MCHKNOD		(bltin_nodes+10)
89*35182Smarc #define RANDNOD		(bltin_nodes+11)
90*35182Smarc #define ENVNOD		(bltin_nodes+12)
91*35182Smarc #define HISTFILE	(bltin_nodes+13)
92*35182Smarc #define HISTSIZE	(bltin_nodes+14)
93*35182Smarc #define FCEDNOD		(bltin_nodes+15)
94*35182Smarc #define CDPNOD		(bltin_nodes+16)
95*35182Smarc #define MAILPNOD	(bltin_nodes+17)
96*35182Smarc #define PS3NOD		(bltin_nodes+18)
97*35182Smarc #define OLDPWDNOD	(bltin_nodes+19)
98*35182Smarc #define VISINOD		(bltin_nodes+20)
99*35182Smarc #define COLUMNS		(bltin_nodes+21)
100*35182Smarc #define LINES		(bltin_nodes+22)
101*35182Smarc #define PPIDNOD		(bltin_nodes+23)
102*35182Smarc #define L_ARGNOD	(bltin_nodes+24)
103*35182Smarc #define TMOUTNOD	(bltin_nodes+25)
104*35182Smarc #define SECONDS		(bltin_nodes+26)
105*35182Smarc #ifdef ACCT
106*35182Smarc #define ACCTNOD 	(bltin_nodes+27)
107*35182Smarc #define NNODES	28
108*35182Smarc #else
109*35182Smarc #define NNODES	27
110*35182Smarc #endif	/* ACCT */
111*35182Smarc #ifdef BSD
112*35182Smarc #define NALIAS	29
113*35182Smarc #else
114*35182Smarc #define NALIAS	28
115*35182Smarc #endif	/* BSD */
116*35182Smarc extern struct Namnod *bltin_nodes;
117*35182Smarc extern struct name_value node_names[];
118*35182Smarc extern struct name_value alias_names[];
119*35182Smarc #ifdef BSD
120*35182Smarc extern char	*limit_names[];
121*35182Smarc #endif	/* BSD */
122*35182Smarc 
123