1*b30d1939SAndy Fiddamanset	prototyped
2*b30d1939SAndy Fiddamaniff	AST_SYS
3*b30d1939SAndy Fiddamanref	-D_def_map_ast
4*b30d1939SAndy Fiddaman
5*b30d1939SAndy Fiddamanprint	#if __mips == 2 && !defined(_NO_LARGEFILE64_SOURCE)
6*b30d1939SAndy Fiddamanprint	#define	_NO_LARGEFILE64_SOURCE	1
7*b30d1939SAndy Fiddamanprint	#endif
8*b30d1939SAndy Fiddamanprint	#if !defined(_NO_LARGEFILE64_SOURCE) && _typ_off64_t && _lib_lseek64 && _lib_stat64
9*b30d1939SAndy Fiddamanprint	#if !defined(_LARGEFILE64_SOURCE)
10*b30d1939SAndy Fiddamanprint	#define _LARGEFILE64_SOURCE	1
11*b30d1939SAndy Fiddamanprint	#endif
12*b30d1939SAndy Fiddamanprint	#if !defined(_LARGEFILE_SOURCE)
13*b30d1939SAndy Fiddamanprint	#define _LARGEFILE_SOURCE	1
14*b30d1939SAndy Fiddamanprint	#endif
15*b30d1939SAndy Fiddamanprint	#if !defined(_LARGE_FILE_API)
16*b30d1939SAndy Fiddamanprint	#define _LARGE_FILE_API		1
17*b30d1939SAndy Fiddamanprint	#endif
18*b30d1939SAndy Fiddamanprint	#else
19*b30d1939SAndy Fiddamanprint	#undef	_LARGEFILE64_SOURCE
20*b30d1939SAndy Fiddamanprint	#undef	_LARGEFILE_SOURCE
21*b30d1939SAndy Fiddamanprint	#undef	_LARGE_FILE_API
22*b30d1939SAndy Fiddamanprint	#undef	_typ_ino64_t
23*b30d1939SAndy Fiddamanprint	#undef	_typ_off64_t
24*b30d1939SAndy Fiddamanprint	#undef	_typ_struct_dirent64
25*b30d1939SAndy Fiddamanprint	#undef	_lib_creat64
26*b30d1939SAndy Fiddamanprint	#undef	_lib_fstat64
27*b30d1939SAndy Fiddamanprint	#undef	_lib_fstatvfs64
28*b30d1939SAndy Fiddamanprint	#undef	_lib_ftruncate64
29*b30d1939SAndy Fiddamanprint	#undef	_lib_lseek64
30*b30d1939SAndy Fiddamanprint	#undef	_lib_lstat64
31*b30d1939SAndy Fiddamanprint	#undef	_lib_mmap64
32*b30d1939SAndy Fiddamanprint	#undef	_lib_open64
33*b30d1939SAndy Fiddamanprint	#undef	_lib_readdir64
34*b30d1939SAndy Fiddamanprint	#undef	_lib_stat64
35*b30d1939SAndy Fiddamanprint	#undef	_lib_statvfs64
36*b30d1939SAndy Fiddamanprint	#undef	_lib_truncate64
37*b30d1939SAndy Fiddamanprint	#endif
38*b30d1939SAndy Fiddamanprint	#if !_lib_readdir64
39*b30d1939SAndy Fiddamanprint	#undef	_typ_ino64_t
40*b30d1939SAndy Fiddamanprint	#endif
41*b30d1939SAndy Fiddaman
42*b30d1939SAndy Fiddamanprint	#if defined(__STDC__) && !defined(__USE_FIXED_PROTOTYPES__)
43*b30d1939SAndy Fiddamanprint	#define __USE_FIXED_PROTOTYPES__	1	/* kick gcc out of the past */
44*b30d1939SAndy Fiddamanprint	#endif
45*b30d1939SAndy Fiddaman
46*b30d1939SAndy Fiddamanheader	stdlib.h
47*b30d1939SAndy Fiddamanheader	stddef.h
48*b30d1939SAndy Fiddamanheader	sys/types.h
49*b30d1939SAndy Fiddamanheader	stdint.h
50*b30d1939SAndy Fiddamanheader	inttypes.h
51*b30d1939SAndy Fiddamanheader	string.h
52*b30d1939SAndy Fiddamanheader	unistd.h
53*b30d1939SAndy Fiddamanheader	limits.h
54*b30d1939SAndy Fiddamanheader	fcntl.h
55*b30d1939SAndy Fiddamanheader	locale.h
56*b30d1939SAndy Fiddaman
57*b30d1939SAndy Fiddamantyp dev_t,nlink_t fail{
58*b30d1939SAndy Fiddaman	echo "#ifndef $m"
59*b30d1939SAndy Fiddaman	echo "#define $m	1"
60*b30d1939SAndy Fiddaman	echo "typedef short $v;"
61*b30d1939SAndy Fiddaman	echo "#endif"
62*b30d1939SAndy Fiddaman}end
63*b30d1939SAndy Fiddamantyp gid_t,mode_t,uid_t fail{
64*b30d1939SAndy Fiddaman	echo "#ifndef $m"
65*b30d1939SAndy Fiddaman	echo "#define $m	1"
66*b30d1939SAndy Fiddaman	echo "typedef unsigned short $v;"
67*b30d1939SAndy Fiddaman	echo "#endif"
68*b30d1939SAndy Fiddaman}end
69*b30d1939SAndy Fiddamantyp wchar_t stdio.h wchar.h fail{
70*b30d1939SAndy Fiddaman	echo "#ifndef $m"
71*b30d1939SAndy Fiddaman	echo "#define $m	1"
72*b30d1939SAndy Fiddaman	echo "typedef unsigned short $v;"
73*b30d1939SAndy Fiddaman	echo "#endif"
74*b30d1939SAndy Fiddaman}end
75*b30d1939SAndy Fiddamantyp pid_t,ssize_t fail{
76*b30d1939SAndy Fiddaman	echo "#ifndef $m"
77*b30d1939SAndy Fiddaman	echo "#define $m	1"
78*b30d1939SAndy Fiddaman	echo "typedef int $v;"
79*b30d1939SAndy Fiddaman	echo "#endif"
80*b30d1939SAndy Fiddaman}end
81*b30d1939SAndy Fiddamantyp wint_t stdio.h wchar.h fail{
82*b30d1939SAndy Fiddaman	echo "#ifndef $m"
83*b30d1939SAndy Fiddaman	echo "#define $m	1"
84*b30d1939SAndy Fiddaman	echo "typedef int $v;"
85*b30d1939SAndy Fiddaman	echo "#endif"
86*b30d1939SAndy Fiddaman}end
87*b30d1939SAndy Fiddamantyp socklen_t sys/socket.h fail{
88*b30d1939SAndy Fiddaman	echo "#ifndef $m"
89*b30d1939SAndy Fiddaman	echo "#define $m	1"
90*b30d1939SAndy Fiddaman	echo "typedef int $v;"
91*b30d1939SAndy Fiddaman	echo "#endif"
92*b30d1939SAndy Fiddaman}end
93*b30d1939SAndy Fiddamantyp size_t fail{
94*b30d1939SAndy Fiddaman	echo "#ifndef $m"
95*b30d1939SAndy Fiddaman	echo "#define $m	1"
96*b30d1939SAndy Fiddaman	echo "typedef unsigned int $v;"
97*b30d1939SAndy Fiddaman	echo "#endif"
98*b30d1939SAndy Fiddaman}end
99*b30d1939SAndy Fiddamantyp clock_t,ino_t,off_t,ptrdiff_t fail{
100*b30d1939SAndy Fiddaman	echo "#ifndef $m"
101*b30d1939SAndy Fiddaman	echo "#define $m	1"
102*b30d1939SAndy Fiddaman	echo "typedef long $v;"
103*b30d1939SAndy Fiddaman	echo "#endif"
104*b30d1939SAndy Fiddaman}end
105*b30d1939SAndy Fiddamantyp time_t fail{
106*b30d1939SAndy Fiddaman	echo "#ifndef $m"
107*b30d1939SAndy Fiddaman	echo "#define $m	1"
108*b30d1939SAndy Fiddaman	echo "typedef unsigned long $v;"
109*b30d1939SAndy Fiddaman	echo "#endif"
110*b30d1939SAndy Fiddaman}end
111*b30d1939SAndy Fiddamantyp div_t fail{
112*b30d1939SAndy Fiddaman	echo "#ifndef $m"
113*b30d1939SAndy Fiddaman	echo "#define $m	1"
114*b30d1939SAndy Fiddaman	echo "typedef struct { int quot; int rem; } $v;"
115*b30d1939SAndy Fiddaman	echo "#endif"
116*b30d1939SAndy Fiddaman}end
117*b30d1939SAndy Fiddamantyp ldiv_t fail{
118*b30d1939SAndy Fiddaman	echo "#ifndef $m"
119*b30d1939SAndy Fiddaman	echo "#define $m	1"
120*b30d1939SAndy Fiddaman	echo "typedef struct { long quot; long rem; } $v;"
121*b30d1939SAndy Fiddaman	echo "#endif"
122*b30d1939SAndy Fiddaman}end
123*b30d1939SAndy Fiddamantst	typ_signed_size_t output{
124*b30d1939SAndy Fiddaman	#include <sys/types.h>
125*b30d1939SAndy Fiddaman	int
126*b30d1939SAndy Fiddaman	main()
127*b30d1939SAndy Fiddaman	{
128*b30d1939SAndy Fiddaman		unsigned long u = ~0;
129*b30d1939SAndy Fiddaman		size_t s = ~0;
130*b30d1939SAndy Fiddaman		if (s >= 0)
131*b30d1939SAndy Fiddaman			return 1;
132*b30d1939SAndy Fiddaman		printf("#if !defined(__cplusplus) && !defined(c_plusplus) && !defined(_typ_signed_size_t)\n/* what dipsticks made size_t signed? sun. */\ntypedef unsigned %s _ast_size_t;\n#undef\tsize_t\n#define size_t\t_ast_size_t\n#endif\n", u == (unsigned long)s ? "long" : "int");
133*b30d1939SAndy Fiddaman		return 0;
134*b30d1939SAndy Fiddaman	}
135*b30d1939SAndy Fiddaman}end
136*b30d1939SAndy Fiddaman
137*b30d1939SAndy Fiddamandefine	offsetof	(type,member)	((size_t)&(((type*)0)->member))
138*b30d1939SAndy Fiddamandefine	EXIT_FAILURE	1
139*b30d1939SAndy Fiddamandefine	EXIT_SUCCESS	0
140*b30d1939SAndy Fiddamandefine	MB_CUR_MAX	1
141*b30d1939SAndy Fiddamandefine	RAND_MAX	32767
142*b30d1939SAndy Fiddaman
143*b30d1939SAndy Fiddamandefine	STDIN_FILENO	0
144*b30d1939SAndy Fiddamandefine	STDOUT_FILENO	1
145*b30d1939SAndy Fiddamandefine	STDERR_FILENO	2
146*b30d1939SAndy Fiddaman
147*b30d1939SAndy Fiddamandefine	NULL		0
148*b30d1939SAndy Fiddaman
149*b30d1939SAndy Fiddamandefine	SEEK_SET	0
150*b30d1939SAndy Fiddamandefine	SEEK_CUR	1
151*b30d1939SAndy Fiddamandefine	SEEK_END	2
152*b30d1939SAndy Fiddaman
153*b30d1939SAndy Fiddamandefine	F_OK		0
154*b30d1939SAndy Fiddamandefine	X_OK		1
155*b30d1939SAndy Fiddamandefine	W_OK		2
156*b30d1939SAndy Fiddamandefine	R_OK		4
157*b30d1939SAndy Fiddaman
158*b30d1939SAndy Fiddamanprint	#if _BLD_ast && defined(__EXPORT__)
159*b30d1939SAndy Fiddamanprint	#define extern	__EXPORT__
160*b30d1939SAndy Fiddamanprint	#endif
161*b30d1939SAndy Fiddaman
162*b30d1939SAndy Fiddamanextern	_exit		void		(int)
163*b30d1939SAndy Fiddamanextern	abort		void		(void)
164*b30d1939SAndy Fiddamanextern	abs		int		(int)
165*b30d1939SAndy Fiddamanextern	access		int		(const char*, int)
166*b30d1939SAndy Fiddamanextern	alarm		unsigned	(unsigned)
167*b30d1939SAndy Fiddamanextern	atexit		int		(void(*)(void))
168*b30d1939SAndy Fiddamanextern	atof		double		(const char*)
169*b30d1939SAndy Fiddamanextern	atoi		int		(const char*)
170*b30d1939SAndy Fiddamanextern	atol		long		(const char*)
171*b30d1939SAndy Fiddamanextern	bsearch		void*		(const void*, const void*, size_t, size_t, int(*)(const void*, const void*))
172*b30d1939SAndy Fiddamanextern	calloc		void*		(size_t, size_t)
173*b30d1939SAndy Fiddamanextern	cfree		void		(void*)
174*b30d1939SAndy Fiddamanextern	chdir		int		(const char*)
175*b30d1939SAndy Fiddamanextern	chown		int		(const char*, uid_t, gid_t)
176*b30d1939SAndy Fiddamanextern	close		int		(int)
177*b30d1939SAndy Fiddamanextern	confstr		size_t		(int, char*, size_t)
178*b30d1939SAndy Fiddamanextern	div		div_t		(int, int)
179*b30d1939SAndy Fiddamanextern	dup		int		(int)
180*b30d1939SAndy Fiddamanextern	dup2		int		(int, int)
181*b30d1939SAndy Fiddamanextern	eaccess		int		(const char*, int)
182*b30d1939SAndy Fiddamanextern	execl		int		(const char*, const char*, ...)
183*b30d1939SAndy Fiddamanextern	execle		int		(const char*, const char*, ...)
184*b30d1939SAndy Fiddamanextern	execlp		int		(const char*, const char*, ...)
185*b30d1939SAndy Fiddamanextern	execv		int		(const char*, char* const[])
186*b30d1939SAndy Fiddamanextern	execve		int		(const char*, char* const[], char* const[])
187*b30d1939SAndy Fiddamanextern	execve		int		(const char*, char* const[], char* const[])
188*b30d1939SAndy Fiddamanextern	execvp		int		(const char*, char* const[])
189*b30d1939SAndy Fiddamanextern	execvpe		int		(const char*, char* const[], char* const[])
190*b30d1939SAndy Fiddamanextern	exit		void		(int)
191*b30d1939SAndy Fiddamanextern	fork		pid_t		(void)
192*b30d1939SAndy Fiddamanextern	fpathconf	long		(int, int)
193*b30d1939SAndy Fiddamanextern	free		void		(void*)
194*b30d1939SAndy Fiddamanextern	fsync		int		(int)
195*b30d1939SAndy Fiddamanextern	ftruncate	int		(int, off_t)
196*b30d1939SAndy Fiddamanextern	getcwd		char*		(char*, size_t)
197*b30d1939SAndy Fiddamanextern	getegid		gid_t		(void)
198*b30d1939SAndy Fiddamanextern	getenv		char*		(const char*)
199*b30d1939SAndy Fiddamanextern	geteuid		uid_t		(void)
200*b30d1939SAndy Fiddamanextern	getgid		gid_t		(void)
201*b30d1939SAndy Fiddamanextern	getgroups	int		(int, gid_t[])
202*b30d1939SAndy Fiddamanextern	getlogin	char*		(void)
203*b30d1939SAndy Fiddamanextern	getpgrp		pid_t		(void)
204*b30d1939SAndy Fiddamanextern	getpid		pid_t		(void)
205*b30d1939SAndy Fiddamanextern	getppid		pid_t		(void)
206*b30d1939SAndy Fiddamanextern	gettxt		char*		(const char*, const char*)
207*b30d1939SAndy Fiddamanextern	getuid		uid_t		(void)
208*b30d1939SAndy Fiddamanextern	isatty		int		(int)
209*b30d1939SAndy Fiddamanextern	labs		long		(long)
210*b30d1939SAndy Fiddamanextern	ldiv		ldiv_t		(long, long)
211*b30d1939SAndy Fiddamanextern	link		int		(const char*, const char*)
212*b30d1939SAndy Fiddamanextern	lseek		off_t		(int, off_t, int)
213*b30d1939SAndy Fiddamanextern	malloc		void*		(size_t)
214*b30d1939SAndy Fiddamanextern	mblen		int		(const char*, size_t)
215*b30d1939SAndy Fiddamanextern	mbstowcs	size_t		(wchar_t*, const char*, size_t)
216*b30d1939SAndy Fiddamanextern	mbtowc		int		(wchar_t*, const char*, size_t)
217*b30d1939SAndy Fiddamanextern	memalign	void*		(size_t, size_t)
218*b30d1939SAndy Fiddamanextern	memccpy		void*		(void*, const void*, int, size_t)
219*b30d1939SAndy Fiddamanextern	memchr		void*		(const void*, int, size_t)
220*b30d1939SAndy Fiddamanextern	memcmp		int		(const void*, const void*, size_t)
221*b30d1939SAndy Fiddamanextern	memcpy		void*		(void*, const void*, size_t)
222*b30d1939SAndy Fiddamanextern	memmove		void*		(void*, const void*, size_t)
223*b30d1939SAndy Fiddamanextern	memset		void*		(void*, int, size_t)
224*b30d1939SAndy Fiddamanextern	pathconf	long		(const char*, int)
225*b30d1939SAndy Fiddamanextern	pause		int		(void)
226*b30d1939SAndy Fiddamanextern	pipe		int		(int[])
227*b30d1939SAndy Fiddamanextern	pvalloc		void*		(size_t)
228*b30d1939SAndy Fiddamanextern	qsort		void		(void*, size_t, size_t, int(*)(const void*, const void*))
229*b30d1939SAndy Fiddamanextern	rand		int		(void)
230*b30d1939SAndy Fiddamanextern	read		ssize_t		(int, void*, size_t)
231*b30d1939SAndy Fiddamanextern	realloc		void*		(void*, size_t)
232*b30d1939SAndy Fiddamanextern	realpath	char*		(const char*, char*)
233*b30d1939SAndy Fiddamanextern	resolvepath	char*		(const char*, char*, size_t)
234*b30d1939SAndy Fiddamanextern	rmdir		int		(const char*)
235*b30d1939SAndy Fiddamanextern	setgid		int		(gid_t)
236*b30d1939SAndy Fiddamanextern	setpgid		int		(pid_t, pid_t)
237*b30d1939SAndy Fiddamanextern	setsid		pid_t		(void)
238*b30d1939SAndy Fiddamanextern	setuid		int		(uid_t)
239*b30d1939SAndy Fiddamanextern	sleep		unsigned		(unsigned int)
240*b30d1939SAndy Fiddamanextern	spawnveg	pid_t		(const char*, char* const[], char* const[], pid_t)
241*b30d1939SAndy Fiddamanextern	srand		void		(unsigned int)
242*b30d1939SAndy Fiddamanextern	strcasecmp	int		(const char*, const char*)
243*b30d1939SAndy Fiddamanextern	strcat		char*		(char*, const char*)
244*b30d1939SAndy Fiddamanextern	strchr		char*		(const char*, int)
245*b30d1939SAndy Fiddamanextern	strcmp		int		(const char*, const char*)
246*b30d1939SAndy Fiddamanextern	strcoll		int		(const char*, const char*)
247*b30d1939SAndy Fiddamanextern	strcpy		char*		(char*, const char*)
248*b30d1939SAndy Fiddamanextern	strcspn		size_t		(const char*, const char*)
249*b30d1939SAndy Fiddamanextern	strdup		char*		(const char*)
250*b30d1939SAndy Fiddamanextern	strlcat		size_t		(char*, const char*, size_t)
251*b30d1939SAndy Fiddamanextern	strlcpy		size_t		(char*, const char*, size_t)
252*b30d1939SAndy Fiddamanextern	strlen		size_t		(const char*)
253*b30d1939SAndy Fiddamanextern	strncasecmp	int		(const char*, const char*, size_t)
254*b30d1939SAndy Fiddamanextern	strncat		char*		(char*, const char*, size_t)
255*b30d1939SAndy Fiddamanextern	strncmp		int		(const char*, const char*, size_t)
256*b30d1939SAndy Fiddamanextern	strncpy		char*		(char*, const char*, size_t)
257*b30d1939SAndy Fiddamanextern	strpbrk		char*		(const char*, const char*)
258*b30d1939SAndy Fiddamanextern	strrchr		char*		(const char*, int)
259*b30d1939SAndy Fiddamanextern	strspn		size_t		(const char*, const char*)
260*b30d1939SAndy Fiddamanextern	strstr		char*		(const char*, const char*)
261*b30d1939SAndy Fiddamanextern	strtok		char*		(char*, const char*)
262*b30d1939SAndy Fiddamanextern	strxfrm		size_t		(char*, const char*, size_t)
263*b30d1939SAndy Fiddamanextern	swab		void		(const void*, void*, ssize_t)
264*b30d1939SAndy Fiddamanextern	sysconf		long		(int)
265*b30d1939SAndy Fiddamanextern	system		int		(const char*)
266*b30d1939SAndy Fiddamanextern	tcgetpgrp	pid_t		(int)
267*b30d1939SAndy Fiddamanextern	tcsetpgrp	int		(int, pid_t)
268*b30d1939SAndy Fiddamanextern	truncate	int		(const char*, off_t)
269*b30d1939SAndy Fiddamanextern	ttyname		char*		(int)
270*b30d1939SAndy Fiddamanextern	unlink		int		(const char*)
271*b30d1939SAndy Fiddamanextern	valloc		void*		(size_t)
272*b30d1939SAndy Fiddamanextern	wcstombs	size_t		(char*, const wchar_t*, size_t)
273*b30d1939SAndy Fiddamanextern	wctomb		int		(char*, wchar_t)
274*b30d1939SAndy Fiddamanextern	write		ssize_t		(int, const void*, size_t)
275*b30d1939SAndy Fiddaman
276*b30d1939SAndy Fiddamanprint	#undef	extern
277*b30d1939SAndy Fiddaman
278*b30d1939SAndy Fiddaman# <stdarg.h> is handled by proto so this must be after the last test
279*b30d1939SAndy Fiddaman
280*b30d1939SAndy Fiddamanprint	#include <stdarg.h>
281