summaryrefslogtreecommitdiff
path: root/usr/src/lib/libshell/common/include/builtins.h
blob: 510f8e233004896e4dcbfbd039c986e656f95c99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
/***********************************************************************
*                                                                      *
*               This software is part of the ast package               *
*          Copyright (c) 1982-2010 AT&T Intellectual Property          *
*                      and is licensed under the                       *
*                  Common Public License, Version 1.0                  *
*                    by AT&T Intellectual Property                     *
*                                                                      *
*                A copy of the License is available at                 *
*            http://www.opensource.org/licenses/cpl1.0.txt             *
*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
*                                                                      *
*              Information and Software Systems Research               *
*                            AT&T Research                             *
*                           Florham Park NJ                            *
*                                                                      *
*                  David Korn <dgk@research.att.com>                   *
*                                                                      *
***********************************************************************/
#pragma prototyped

#ifndef SYSDECLARE

#include	<option.h>
#include	"FEATURE/options"
#include	"FEATURE/dynamic"
#include	"shtable.h"

#define	SYSLOGIN	(sh.bltin_cmds)
#define SYSEXEC		(sh.bltin_cmds+1)
#define SYSSET		(sh.bltin_cmds+2)
#define SYSTRUE		(sh.bltin_cmds+4)
#define SYSCOMMAND	(sh.bltin_cmds+5)
#define SYSCD		(sh.bltin_cmds+6)
#define SYSBREAK	(sh.bltin_cmds+7)
#define SYSCONT		(sh.bltin_cmds+8)
#define SYSTYPESET	(sh.bltin_cmds+9)
#define SYSTEST		(sh.bltin_cmds+10)
#define SYSBRACKET	(sh.bltin_cmds+11)
#define SYSLET		(sh.bltin_cmds+12)
#define SYSEXPORT	(sh.bltin_cmds+13)
#define SYSDOT		(sh.bltin_cmds+14)
#define SYSRETURN	(sh.bltin_cmds+15)
#if SHOPT_BASH
#   define SYSLOCAL	(sh.bltin_cmds+16)
#else
#   define SYSLOCAL	0
#endif

/* entry point for shell special builtins */

#if _BLD_shell && defined(__EXPORT__)
#	define extern	__EXPORT__
#endif

extern int b_alias(int, char*[],void*);
extern int b_break(int, char*[],void*);
extern int b_dot_cmd(int, char*[],void*);
extern int b_enum(int, char*[],void*);
extern int b_exec(int, char*[],void*);
extern int b_eval(int, char*[],void*);
extern int b_return(int, char*[],void*);
extern int B_login(int, char*[],void*);
extern int b_true(int, char*[],void*);
extern int b_false(int, char*[],void*);
extern int b_readonly(int, char*[],void*);
extern int b_set(int, char*[],void*);
extern int b_shift(int, char*[],void*);
extern int b_trap(int, char*[],void*);
extern int b_typeset(int, char*[],void*);
extern int b_unset(int, char*[],void*);
extern int b_unalias(int, char*[],void*);

/* The following are for job control */
#if defined(SIGCLD) || defined(SIGCHLD)
    extern int b_jobs(int, char*[],void*);
    extern int b_kill(int, char*[],void*);
#   ifdef SIGTSTP
	extern int b_bg(int, char*[],void*);
#   endif	/* SIGTSTP */
#endif

/* The following utilities are built-in because of side-effects */
extern int b_builtin(int, char*[],void*);
extern int b_cd(int, char*[],void*);
extern int b_command(int, char*[],void*);
extern int b_getopts(int, char*[],void*);
extern int b_hist(int, char*[],void*);
extern int b_let(int, char*[],void*);
extern int b_read(int, char*[],void*);
extern int b_ulimit(int, char*[],void*);
extern int b_umask(int, char*[],void*);
#ifdef _cmd_universe
    extern int b_universe(int, char*[],void*);
#endif /* _cmd_universe */
#if SHOPT_FS_3D
    extern int b_vpath(int, char*[],void*);
#endif /* SHOPT_FS_3D */
extern int b_wait(int, char*[],void*);
extern int b_whence(int, char*[],void*);

extern int b_alarm(int, char*[],void*);
extern int b_print(int, char*[],void*);
extern int b_printf(int, char*[],void*);
extern int b_pwd(int, char*[],void*);
extern int b_sleep(int, char*[],void*);
extern int b_test(int, char*[],void*);
#if !SHOPT_ECHOPRINT
    extern int B_echo(int, char*[],void*);
#endif /* SHOPT_ECHOPRINT */

#undef	extern

extern const char	e_alrm1[];
extern const char	e_alrm2[];
extern const char	e_badfun[];
extern const char	e_baddisc[];
extern const char	e_nofork[];
extern const char	e_nosignal[];
extern const char	e_nolabels[];
extern const char	e_notimp[];
extern const char	e_nosupport[];
extern const char	e_badbase[];
extern const char	e_overlimit[];

extern const char	e_eneedsarg[];
extern const char	e_oneoperand[];
extern const char	e_toodeep[];
extern const char	e_badname[];
extern const char	e_badsyntax[];
#ifdef _cmd_universe
    extern const char	e_nouniverse[];
#endif /* _cmd_universe */
extern const char	e_histopen[];
extern const char	e_condition[];
extern const char	e_badrange[];
extern const char	e_trap[];
extern const char	e_direct[];
extern const char	e_defedit[];
extern const char	e_cneedsarg[];
extern const char	e_defined[];
#if SHOPT_FS_3D
    extern const char	e_cantset[];
    extern const char	e_cantget[];
    extern const char	e_mapping[];
    extern const char	e_versions[];
#endif /* SHOPT_FS_3D */

/* for option parsing */
extern const char sh_set[];
extern const char sh_optalarm[];
extern const char sh_optalias[];
extern const char sh_optbreak[];
extern const char sh_optbuiltin[];
extern const char sh_optcd[];
extern const char sh_optcommand[];
extern const char sh_optcont[];
extern const char sh_optdot[];
#ifndef ECHOPRINT
    extern const char sh_optecho[];
#endif /* !ECHOPRINT */
extern const char sh_opteval[];
extern const char sh_optexec[];
extern const char sh_optexit[];
extern const char sh_optexport[];
extern const char sh_optgetopts[];
extern const char sh_optbg[];
extern const char sh_optdisown[];
extern const char sh_optfg[];
extern const char sh_opthist[];
extern const char sh_optjobs[];
extern const char sh_optkill[];
extern const char sh_optksh[];
extern const char sh_optlet[];
extern const char sh_optprint[];
extern const char sh_optprintf[];
extern const char sh_optpwd[];
extern const char sh_optread[];
extern const char sh_optreadonly[];
extern const char sh_optreturn[];
extern const char sh_optset[];
extern const char sh_optshift[];
extern const char sh_optsleep[];
extern const char sh_opttrap[];
extern const char sh_opttypeset[];
extern const char sh_optulimit[];
extern const char sh_optumask[];
extern const char sh_optunalias[];
extern const char sh_optwait[];
#ifdef _cmd_universe
    extern const char sh_optuniverse[];
#endif /* _cmd_universe */
extern const char sh_optunset[];
#if SHOPT_FS_3D
    extern const char sh_optvpath[];
    extern const char sh_optvmap[];
#endif /* SHOPT_FS_3D */
extern const char sh_optwhence[];
#endif /* SYSDECLARE */

extern const char e_dict[];