1da2e3ebdSchin /*
2da2e3ebdSchin  * CDDL HEADER START
3da2e3ebdSchin  *
4da2e3ebdSchin  * The contents of this file are subject to the terms of the
5da2e3ebdSchin  * Common Development and Distribution License (the "License").
6da2e3ebdSchin  * You may not use this file except in compliance with the License.
7da2e3ebdSchin  *
8da2e3ebdSchin  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9da2e3ebdSchin  * or http://www.opensolaris.org/os/licensing.
10da2e3ebdSchin  * See the License for the specific language governing permissions
11da2e3ebdSchin  * and limitations under the License.
12da2e3ebdSchin  *
13da2e3ebdSchin  * When distributing Covered Code, include this CDDL HEADER in each
14da2e3ebdSchin  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15da2e3ebdSchin  * If applicable, add the following below this CDDL HEADER, with the
16da2e3ebdSchin  * fields enclosed by brackets "[]" replaced with your own identifying
17da2e3ebdSchin  * information: Portions Copyright [yyyy] [name of copyright owner]
18da2e3ebdSchin  *
19da2e3ebdSchin  * CDDL HEADER END
20da2e3ebdSchin  */
21da2e3ebdSchin 
22da2e3ebdSchin /*
233e14f97fSRoger A. Faulkner  * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
24*b30d1939SAndy Fiddaman  * Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
25da2e3ebdSchin  */
26da2e3ebdSchin 
27*b30d1939SAndy Fiddaman #ifndef _ILLUMOS_KSH_CMDLIST_H
28*b30d1939SAndy Fiddaman #define	_ILLUMOS_KSH_CMDLIST_H
29da2e3ebdSchin 
30da2e3ebdSchin #ifdef	__cplusplus
31da2e3ebdSchin extern "C" {
32da2e3ebdSchin #endif
33da2e3ebdSchin 
34da2e3ebdSchin /*
35*b30d1939SAndy Fiddaman  * List builtins for illumos.
36da2e3ebdSchin  * The list here is partially autogenerated and partially hand-picked
37*b30d1939SAndy Fiddaman  * based on compatibility with the native illumos versions of these
38da2e3ebdSchin  * tools
39da2e3ebdSchin  */
40da2e3ebdSchin 
41da2e3ebdSchin /*
42*b30d1939SAndy Fiddaman  * Commands which are 100% compatible with native illumos versions (/bin is
43*b30d1939SAndy Fiddaman  * a softlink to ./usr/bin, ksh93 takes care of the lookup)
447c2fbfb3SApril Chin  */
457c2fbfb3SApril Chin #define	BINCMDLIST(f)	\
467c2fbfb3SApril Chin 	{ "/bin/"	#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
477c2fbfb3SApril Chin #define	USRBINCMDLIST(f)	\
487c2fbfb3SApril Chin 	{ "/usr/bin/"	#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
497c2fbfb3SApril Chin #define	SBINCMDLIST(f)	\
507c2fbfb3SApril Chin 	{ "/sbin/"	#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
517c2fbfb3SApril Chin #define	SUSRBINCMDLIST(f)	\
527c2fbfb3SApril Chin 	{ "/usr/sbin/"	#f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
533e14f97fSRoger A. Faulkner /* POSIX compatible commands */
543e14f97fSRoger A. Faulkner #define	XPG6CMDLIST(f)	\
553e14f97fSRoger A. Faulkner 	{ "/usr/xpg6/bin/" #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
563e14f97fSRoger A. Faulkner #define	XPG4CMDLIST(f)	\
573e14f97fSRoger A. Faulkner 	{ "/usr/xpg4/bin/" #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
583e14f97fSRoger A. Faulkner #ifdef SHOPT_USR_GNU_BIN_BUILTINS
593e14f97fSRoger A. Faulkner /* GNU coreutils compatible commands */
603e14f97fSRoger A. Faulkner #define	GNUCMDLIST(f)	\
613e14f97fSRoger A. Faulkner 	{ "/usr/gnu/bin/" #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
623e14f97fSRoger A. Faulkner #else
633e14f97fSRoger A. Faulkner #define	GNUCMDLIST(f)
643e14f97fSRoger A. Faulkner #endif
657c2fbfb3SApril Chin /*
667c2fbfb3SApril Chin  * Make all ksh93 builtins accessible when /usr/ast/bin was added to
677c2fbfb3SApril Chin  * /usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/bin:/opt/SUNWspro/bin
68da2e3ebdSchin  */
697c2fbfb3SApril Chin #define	ASTCMDLIST(f)	\
707c2fbfb3SApril Chin 	{ "/usr/ast/bin/" #f, NV_BLTIN|NV_BLTINOPT|NV_NOFREE, bltin(f) },
71da2e3ebdSchin 
72da2e3ebdSchin /* undo ast_map.h #defines to avoid collision */
73da2e3ebdSchin #undef basename
74da2e3ebdSchin #undef dirname
7534f9b3eeSRoland Mainz #undef mktemp
76da2e3ebdSchin 
77da2e3ebdSchin /* Generated data, do not edit. */
78da2e3ebdSchin ASTCMDLIST(basename)
793e14f97fSRoger A. Faulkner GNUCMDLIST(basename)
803e14f97fSRoger A. Faulkner XPG4CMDLIST(basename)
81da2e3ebdSchin ASTCMDLIST(cat)
823e14f97fSRoger A. Faulkner BINCMDLIST(cat)
83da2e3ebdSchin ASTCMDLIST(chgrp)
843e14f97fSRoger A. Faulkner // XPG4CMDLIST(chgrp)
85da2e3ebdSchin ASTCMDLIST(chmod)
86da2e3ebdSchin ASTCMDLIST(chown)
873e14f97fSRoger A. Faulkner // XPG4CMDLIST(chown)
888f5edf1fSAlexander Pyhalov // BINCMDLIST(chown)
8934f9b3eeSRoland Mainz ASTCMDLIST(cksum)
903e14f97fSRoger A. Faulkner BINCMDLIST(cksum)
913e14f97fSRoger A. Faulkner GNUCMDLIST(cksum)
92da2e3ebdSchin ASTCMDLIST(cmp)
933e14f97fSRoger A. Faulkner BINCMDLIST(cmp)
94da2e3ebdSchin ASTCMDLIST(comm)
953e14f97fSRoger A. Faulkner BINCMDLIST(comm)
963e14f97fSRoger A. Faulkner GNUCMDLIST(comm)
97da2e3ebdSchin ASTCMDLIST(cp)
983e14f97fSRoger A. Faulkner // XPG4CMDLIST(cp)
99da2e3ebdSchin ASTCMDLIST(cut)
1003e14f97fSRoger A. Faulkner BINCMDLIST(cut)
1013e14f97fSRoger A. Faulkner GNUCMDLIST(cut)
102da2e3ebdSchin ASTCMDLIST(date)
1033e14f97fSRoger A. Faulkner // XPG4CMDLIST(date)
104da2e3ebdSchin ASTCMDLIST(dirname)
1053e14f97fSRoger A. Faulkner BINCMDLIST(dirname)
1063e14f97fSRoger A. Faulkner GNUCMDLIST(dirname)
107da2e3ebdSchin ASTCMDLIST(expr)
1083e14f97fSRoger A. Faulkner GNUCMDLIST(expr)
1093e14f97fSRoger A. Faulkner XPG6CMDLIST(expr)
110da2e3ebdSchin ASTCMDLIST(fds)
111da2e3ebdSchin ASTCMDLIST(fmt)
112da2e3ebdSchin ASTCMDLIST(fold)
1133e14f97fSRoger A. Faulkner BINCMDLIST(fold)
1143e14f97fSRoger A. Faulkner GNUCMDLIST(fold)
115da2e3ebdSchin ASTCMDLIST(head)
1163e14f97fSRoger A. Faulkner BINCMDLIST(head)
117da2e3ebdSchin ASTCMDLIST(id)
1183e14f97fSRoger A. Faulkner XPG4CMDLIST(id)
119da2e3ebdSchin ASTCMDLIST(join)
1203e14f97fSRoger A. Faulkner BINCMDLIST(join)
1213e14f97fSRoger A. Faulkner GNUCMDLIST(join)
122da2e3ebdSchin ASTCMDLIST(ln)
1233e14f97fSRoger A. Faulkner // XPG4CMDLIST(ln)
124da2e3ebdSchin ASTCMDLIST(logname)
1253e14f97fSRoger A. Faulkner BINCMDLIST(logname)
1263e14f97fSRoger A. Faulkner GNUCMDLIST(logname)
12734f9b3eeSRoland Mainz ASTCMDLIST(md5sum)
128da2e3ebdSchin ASTCMDLIST(mkdir)
1293e14f97fSRoger A. Faulkner BINCMDLIST(mkdir)
1303e14f97fSRoger A. Faulkner GNUCMDLIST(mkdir)
131da2e3ebdSchin ASTCMDLIST(mkfifo)
1323e14f97fSRoger A. Faulkner BINCMDLIST(mkfifo)
1333e14f97fSRoger A. Faulkner GNUCMDLIST(mkfifo)
13434f9b3eeSRoland Mainz ASTCMDLIST(mktemp)
1353e14f97fSRoger A. Faulkner BINCMDLIST(mktemp)
1363e14f97fSRoger A. Faulkner GNUCMDLIST(mktemp)
137da2e3ebdSchin ASTCMDLIST(mv)
1383e14f97fSRoger A. Faulkner // XPG4CMDLIST(mv)
139da2e3ebdSchin ASTCMDLIST(paste)
1403e14f97fSRoger A. Faulkner BINCMDLIST(paste)
1413e14f97fSRoger A. Faulkner GNUCMDLIST(paste)
142da2e3ebdSchin ASTCMDLIST(pathchk)
1433e14f97fSRoger A. Faulkner BINCMDLIST(pathchk)
1443e14f97fSRoger A. Faulkner GNUCMDLIST(pathchk)
145da2e3ebdSchin ASTCMDLIST(rev)
1463e14f97fSRoger A. Faulkner BINCMDLIST(rev)
147da2e3ebdSchin ASTCMDLIST(rm)
1483e14f97fSRoger A. Faulkner XPG4CMDLIST(rm)
149da2e3ebdSchin ASTCMDLIST(rmdir)
1503e14f97fSRoger A. Faulkner BINCMDLIST(rmdir)
1513e14f97fSRoger A. Faulkner GNUCMDLIST(rmdir)
1523e14f97fSRoger A. Faulkner GNUCMDLIST(sleep)
153da2e3ebdSchin ASTCMDLIST(stty)
1543e14f97fSRoger A. Faulkner // XPG4CMDLIST(stty)
1557c2fbfb3SApril Chin ASTCMDLIST(sum)
1563e14f97fSRoger A. Faulkner BINCMDLIST(sum)
1577c2fbfb3SApril Chin ASTCMDLIST(sync)
1583e14f97fSRoger A. Faulkner BINCMDLIST(sync)
1593e14f97fSRoger A. Faulkner GNUCMDLIST(sync)
1603e14f97fSRoger A. Faulkner SBINCMDLIST(sync)
1613e14f97fSRoger A. Faulkner SUSRBINCMDLIST(sync)
162da2e3ebdSchin ASTCMDLIST(tail)
1633e14f97fSRoger A. Faulkner BINCMDLIST(tail)
1643e14f97fSRoger A. Faulkner XPG4CMDLIST(tail)
165da2e3ebdSchin ASTCMDLIST(tee)
1663e14f97fSRoger A. Faulkner BINCMDLIST(tee)
1673e14f97fSRoger A. Faulkner GNUCMDLIST(tee)
168da2e3ebdSchin ASTCMDLIST(tty)
1693e14f97fSRoger A. Faulkner BINCMDLIST(tty)
1703e14f97fSRoger A. Faulkner GNUCMDLIST(tty)
171da2e3ebdSchin ASTCMDLIST(uname)
172da2e3ebdSchin ASTCMDLIST(uniq)
1733e14f97fSRoger A. Faulkner BINCMDLIST(uniq)
1743e14f97fSRoger A. Faulkner GNUCMDLIST(uniq)
175da2e3ebdSchin ASTCMDLIST(wc)
1763e14f97fSRoger A. Faulkner BINCMDLIST(wc)
1773e14f97fSRoger A. Faulkner GNUCMDLIST(wc)
178da2e3ebdSchin 
179da2e3ebdSchin /* Mandatory for ksh93 test suite and AST scripts */
180da2e3ebdSchin BINCMDLIST(getconf)
181da2e3ebdSchin 
182da2e3ebdSchin #ifdef	__cplusplus
183da2e3ebdSchin }
184da2e3ebdSchin #endif
185da2e3ebdSchin 
186*b30d1939SAndy Fiddaman #endif /* !_ILLUMOS_KSH_CMDLIST_H */
187