1 /* @(#)sunos4_proto.h	1.3 13/09/14 Copyright 2013 J. Schilling */
2 /*
3  *	Prototypes for POSIX standard functions that are missing on SunOS-4.x.
4  *
5  *	Copyright (c) 2013 J. Schilling
6  */
7 /*
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License, Version 1.0 only
10  * (the "License").  You may not use this file except in compliance
11  * with the License.
12  *
13  * See the file CDDL.Schily.txt in this distribution for details.
14  * A copy of the CDDL is also available via the Internet at
15  * http://www.opensource.org/licenses/cddl1.txt
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file CDDL.Schily.txt from this distribution.
19  */
20 
21 
22 #ifndef _SCHILY_SUNOS4_PROTO_H
23 #define	_SCHILY_SUNOS4_PROTO_H
24 
25 #ifndef	_SCHILY_MCONFIG_H
26 #include <schily/mconfig.h>
27 #endif
28 
29 #ifdef	__cplusplus
30 extern "C" {
31 #endif
32 
33 /*
34  * ctype.h
35  */
36 #if	defined(_SCHILY_CTYPE_H) || defined(_SCHILY_WCTYPE_H)
37 extern	int		tolower __PR((int __c));
38 extern	int		toupper __PR((int __c));
39 #endif
40 
41 /*
42  * pwd.h
43  */
44 #ifdef	_SCHILY_PWD_H
45 extern	void		endpwent __PR((void));
46 #endif
47 
48 /*
49  * poll.h
50  */
51 /*#ifdef	_sys_poll_h*/
52 #ifdef	_SCHILY_POLL_H
53 extern	int		poll __PR((struct pollfd __fds[], unsigned long __nfds, int __timeout));
54 #endif
55 
56 /*
57  * schily/hostname.h
58  */
59 #ifdef	_SCHILY_HOSTNAME_H
60 extern	int		gethostname	__PR((char *name, int namelen));
61 extern	int		getdomainname	__PR((char *name, int namelen));
62 #endif
63 
64 /*
65  * signal.h
66  */
67 #ifdef	_SCHILY_SIGNAL_H
68 extern	int		killpg __PR((pid_t __pgrp, int __sig));
69 extern	int		sigvec __PR((int __sig, struct sigvec *__nvec, struct sigvec *__ovec));
70 #endif
71 
72 /*
73  * stdio.h
74  */
75 #ifdef	_INCL_STDIO_H
76 extern	int		fclose __PR((FILE *__stream));
77 /*
78  * XXX libshedit contains #define fflush(a) (0) that would cause a syntax error
79  * XXX on a K&R compiler.
80  */
81 #ifndef	fflush
82 extern	int		fflush __PR((FILE *__stream));
83 #endif
84 extern	int		fgetc __PR((FILE *__stream));
85 extern	int		_filbuf __PR((FILE *__stream));
86 extern	int		_flsbuf __PR((int __c, FILE *__stream));
87 extern	int		fputc __PR((int __c, FILE *__stream));
88 extern	int		fputs __PR((const char *__s, FILE *__stream));
89 extern	int		fprintf __PR((FILE *__stream, const char * __format, ...));
90 extern	size_t		fread __PR((void *__ptr, size_t __size, size_t __nitems, FILE *__stream));
91 extern	int		fseek __PR((FILE *__stream, long __offset, int __whence));
92 extern	size_t		fwrite __PR((void *__ptr, size_t __size, size_t __nitems, FILE *__stream));
93 extern	int		pclose __PR((FILE *__stream));
94 extern	void		rewind __PR((FILE *__stream));
95 extern	void		setbuf __PR((FILE *__stream, char *__buf));
96 extern	int		setvbuf __PR((FILE *__stream, char *__buf, int __type, size_t __size));
97 extern	int		scanf __PR((const char * __format, ...));
98 extern	int		sscanf __PR((const char * __s, const char * __format, ...));
99 extern	int		ungetc __PR((int __c, FILE *__stream));
100 #ifdef	_SCHILY_VARARGS_H
101 extern	int		vfprintf __PR((FILE *__stream, const char *__format, va_list __ap));
102 #endif
103 extern	void		perror __PR((const char *__s));
104 extern	int		printf __PR((const char * __format, ...));
105 
106 /* Kommt von libschily */
107 /*PRINTFLIKE3*/
108 extern	int		snprintf __PR((char * __s, size_t __n,
109 					const char * __format, /* args*/ ...))
110 							__printflike__(3, 4);
111 #endif
112 
113 /*
114  * stdlib.h
115  */
116 #ifdef	_INCL_STDLIB_H
117 /*
118  * XXX cdda2wav includes a #define atexit(f) on_exit(f, 0) that
119  * XXX would cause syntax errors with the next prototype on a K&R compiler.
120  */
121 #ifndef	atexit
122 extern	int		atexit __PR((void (*__func)(void)));
123 #endif
124 extern	int		on_exit __PR((void (*__procp)(void), caddr_t __arg));
125 extern	char *		ecvt __PR((double __value, int __ndigit, int * __decpt, int * __sign));
126 /*
127  * XXX Sun has extern int free(), but GCC has extern void free() in stdlib.h
128  */
129 /*extern	void		free __PR((void *__ptr));*/
130 extern	char *		fcvt __PR((double __value, int __ndigit, int * __decpt, int * __sign));
131 extern	char *		gcvt __PR((double __value, int __ndigit, char * __buf));
132 extern	int		mkstemp __PR((char *__template));
133 extern	char *		mktemp __PR((char *__template));
134 extern	int		putenv __PR((char *__string));
135 extern	long		strtol __PR((const char * __str, char ** __endptr, int __base));
136 extern	int		system __PR((const char *_string));
137 extern	void *		valloc __PR((size_t __size));
138 #endif
139 
140 /*
141  * string.h
142  */
143 #ifdef	_SCHILY_STRING_H
144 extern	void *		memchr __PR((const void *__s, int __c, size_t __n));
145 extern	int		strcoll __PR((const char *__s1, const char *__s2));
146 extern	int		strncasecmp __PR((const char *__s1, const char *__s2, size_t __n));
147 
148 /*
149  * strings.h
150  */
151 extern	void		bcopy __PR((const void *__s1, void *__s2, size_t __n));
152 extern	void		bzero __PR((void *__s, size_t __n));
153 #endif
154 
155 /*
156  * sys/file.h
157  */
158 #ifdef	_SCHILY_FCNTL_H
159 extern	int		flock __PR((int __fd, int __operation));
160 #endif
161 
162 /*
163  * sys/mman.h
164  */
165 #ifdef	_SCHILY_MMAN_H
166 extern	int		mlock __PR((caddr_t __addr, size_t __len));
167 extern	int		mlockall __PR((int __flags));
168 #endif
169 
170 /*
171  * sys/resource.h
172  */
173 #ifdef	_SCHILY_RESOURCE_H
174 extern	int		getrlimit __PR((int __resource, struct rlimit *__rlp));
175 extern	int		setrlimit __PR((int __resource, const struct rlimit *__rlp));
176 extern	int		getrusage __PR((int __who, struct rusage *__r_usage));
177 extern	int		getpriority __PR((int __which, int __who));
178 extern	int		setpriority __PR((int _which, int __who, int __value));
179 
180 extern	pid_t		wait3 __PR((int *__statusp, int __options, struct rusage *__rusage));
181 #endif
182 
183 /*
184  * sys/shm.h
185  */
186 #ifdef	_SCHILY_SHM_H
187 extern	void *		shmat __PR((int __shmid, const void *__shmaddr, int __shmflg));
188 extern	int		shmctl __PR((int __shmid, int __cmd, struct shmid_ds *__buf));
189 extern	int		shmget __PR((key_t __key, size_t __size, int __shmflg));
190 #endif
191 
192 /*
193  * sys/socket.h
194  */
195 #ifdef	_SCHILY_SOCKET_H
196 extern	int		connect __PR((int __s, const struct sockaddr *__name, int __namelen));
197 extern	int		socket __PR((int __domain, int __type, int __protocol));
198 extern	int		getsockopt __PR((int __s, int __level, int __optname, void *__optval,
199 					int *__optlen));
200 extern	int		setsockopt __PR((int __s, int __level, int __optname, const void *__optval,
201 					int __optlen));
202 extern	int		getpeername __PR((int __s, struct sockaddr *__name, socklen_t *__namelen));
203 extern	int		socketpair __PR((int __domain, int __type, int __protocol, int __sv[2]));
204 #endif
205 
206 /*
207  * sys/stat.h
208  */
209 #ifdef	_INCL_SYS_STAT_H
210 extern	int		stat __PR((const char * __path, struct stat * __buf));
211 extern	int		lstat __PR((const char * __path, struct stat * __buf));
212 extern	int		fchmod __PR((int __fildes, mode_t __mode));
213 extern	int		fstat __PR((int __filedes, struct stat * __buf));
214 extern	int		mknod __PR((const char *__path, mode_t __mode, dev_t __dev));
215 #endif
216 
217 /*
218  * sys/time.h
219  */
220 #ifdef	_INCL_SYS_TIME_H
221 extern	int		gettimeofday __PR((struct timeval *__tp, void *__tzp));
222 extern	int		settimeofday __PR((struct timeval *__tp, void *__tzp));
223 extern	int		utimes __PR((const char *__path, const struct timeval __times[2]));
224 extern	int		select __PR((int __nfds, fd_set * __readfds, fd_set * __writefds,
225 						fd_set * __errorfds,
226 						struct timeval * __timeout));
227 
228 #endif
229 
230 /*
231  * sys/timeb.h
232  */
233 #ifdef	_sys_timeb_h
234 extern	int		ftime __PR((struct timeb *__tp));
235 #endif
236 
237 /*
238  * time.h
239  */
240 #ifdef	_SCHILY_TIME_H
241 extern	clock_t		clock  __PR((void));
242 extern	time_t		mktime __PR((struct tm *__timeptr));
243 extern	size_t		strftime __PR((char * _s, size_t _maxsize,
244 						const char * __format,
245 						const struct tm * __timeptr));
246 extern	time_t		time __PR((time_t *__tloc));
247 #endif
248 
249 /*
250  * unistd.h
251  */
252 #ifdef	_SCHILY_UNISTD_H
253 /*extern	int		chdir __PR((const char *__path));*/
254 extern	int		fchdir __PR((int __fildes));
255 extern	int		fsync __PR((int __fildes));
256 extern	int		getdtablesize __PR((void));
257 extern	long		gethostid __PR((void));
258 extern	int		getopt __PR((int __argc, char * const __argv[], const char *__optstring));
259 extern	int		ioctl __PR((int __fildes, int __request, /* arg */ ...));
260 extern	int		lockf __PR((int __fildes, int __function, off_t __size));
261 extern	int		rcmd __PR((char **__ahost, unsigned short __inport, const char *__luser,
262 					const char *__ruser, const char *__cmd, int *__fd2p));
263 extern	ssize_t		readlink __PR((const char * __path, char * __buf, size_t __bufsiz));
264 extern	int		rename __PR((const char *__old, const char *__new));
265 extern	int		setreuid __PR((uid_t __ruid, uid_t __euid));
266 extern	int		seteuid __PR((uid_t __euid));
267 extern	int		setegid __PR((gid_t __egid));
268 
269 extern	int		symlink __PR((const char *__name1, const char *__name2));
270 extern	void		sync __PR((void));
271 
272 extern	int		truncate __PR((const char *__path, off_t __length));
273 extern	int		ftruncate __PR((int __fildes, off_t __length));
274 
275 extern	int		brk __PR((void *__endds));
276 /*extern	void *		sbrk __PR((intptr_t __incr));*/
277 extern	void *		sbrk __PR((Intptr_t __incr));
278 
279 /*extern	int		usleep __PR((useconds_t __useconds));*/
280 extern	int		usleep __PR((unsigned __useconds));
281 #endif
282 
283 #ifdef	__cplusplus
284 }
285 #endif
286 
287 #endif	/* _SCHILY_SUNOS4_PROTO_H */
288