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