xref: /freebsd/contrib/ntp/include/l_stdlib.h (revision 767173cec2b2041e1f847bc8896092f9c1481242)
1c0b746e5SOllivier Robert /*
2c0b746e5SOllivier Robert  * Proto types for machines that are not ANSI and POSIX	 compliant.
3c0b746e5SOllivier Robert  * This is optional
4c0b746e5SOllivier Robert  */
5c0b746e5SOllivier Robert 
62b15cb3dSCy Schubert #ifndef L_STDLIB_H
72b15cb3dSCy Schubert #define L_STDLIB_H
8c0b746e5SOllivier Robert 
9c0b746e5SOllivier Robert #ifdef HAVE_STDLIB_H
10c0b746e5SOllivier Robert # include <stdlib.h>
11c0b746e5SOllivier Robert #endif
12c0b746e5SOllivier Robert 
139c2daa00SOllivier Robert #include <stdarg.h>
14c0b746e5SOllivier Robert #include <sys/types.h>
15c0b746e5SOllivier Robert 
16c0b746e5SOllivier Robert /* Needed for speed_t. */
17c0b746e5SOllivier Robert #ifdef HAVE_TERMIOS_H
18c0b746e5SOllivier Robert # include <termios.h>
19c0b746e5SOllivier Robert #endif
20c0b746e5SOllivier Robert 
21c0b746e5SOllivier Robert #ifdef HAVE_ERRNO_H
22c0b746e5SOllivier Robert # include <errno.h>
23c0b746e5SOllivier Robert #endif
24c0b746e5SOllivier Robert 
25c0b746e5SOllivier Robert #include "ntp_types.h"
26c0b746e5SOllivier Robert #include "ntp_proto.h"
27c0b746e5SOllivier Robert 
28c0b746e5SOllivier Robert /* Let's try to keep this more or less alphabetized... */
29c0b746e5SOllivier Robert 
30c0b746e5SOllivier Robert #ifdef DECL_ADJTIME_0
31c0b746e5SOllivier Robert struct timeval;
322b15cb3dSCy Schubert extern	int	adjtime		(struct timeval *, struct timeval *);
33c0b746e5SOllivier Robert #endif
34c0b746e5SOllivier Robert 
35c0b746e5SOllivier Robert #ifdef DECL_BCOPY_0
36c0b746e5SOllivier Robert #ifndef bcopy
372b15cb3dSCy Schubert extern	void	bcopy		(const char *, char *, int);
38c0b746e5SOllivier Robert #endif
39c0b746e5SOllivier Robert #endif
40c0b746e5SOllivier Robert 
41c0b746e5SOllivier Robert #ifdef DECL_BZERO_0
42c0b746e5SOllivier Robert #ifndef bzero
432b15cb3dSCy Schubert extern	void	bzero		(char *, int);
44c0b746e5SOllivier Robert #endif
45c0b746e5SOllivier Robert #endif
46c0b746e5SOllivier Robert 
47c0b746e5SOllivier Robert #ifdef DECL_CFSETISPEED_0
48c0b746e5SOllivier Robert struct termios;
492b15cb3dSCy Schubert extern	int	cfsetispeed	(struct termios *, speed_t);
502b15cb3dSCy Schubert extern	int	cfsetospeed	(struct termios *, speed_t);
51c0b746e5SOllivier Robert #endif
52c0b746e5SOllivier Robert 
532b15cb3dSCy Schubert extern	char *	getpass		(const char *);
54c0b746e5SOllivier Robert 
55224ba2bdSOllivier Robert #ifdef DECL_HSTRERROR_0
562b15cb3dSCy Schubert extern	const char * hstrerror	(int);
57224ba2bdSOllivier Robert #endif
58224ba2bdSOllivier Robert 
59c0b746e5SOllivier Robert #ifdef DECL_INET_NTOA_0
60c0b746e5SOllivier Robert struct in_addr;
612b15cb3dSCy Schubert extern	char *	inet_ntoa	(struct in_addr);
62c0b746e5SOllivier Robert #endif
63c0b746e5SOllivier Robert 
64c0b746e5SOllivier Robert #ifdef DECL_IOCTL_0
652b15cb3dSCy Schubert extern	int	ioctl		(int, u_long, char *);
66c0b746e5SOllivier Robert #endif
67c0b746e5SOllivier Robert 
68c0b746e5SOllivier Robert #ifdef DECL_IPC_0
69c0b746e5SOllivier Robert struct sockaddr;
702b15cb3dSCy Schubert extern	int	bind		(int, struct sockaddr *, int);
712b15cb3dSCy Schubert extern	int	connect		(int, struct sockaddr *, int);
722b15cb3dSCy Schubert extern	int	recv		(int, char *, int, int);
732b15cb3dSCy Schubert extern	int	recvfrom	(int, char *, int, int, struct sockaddr *, int *);
742b15cb3dSCy Schubert extern	int	send		(int, char *, int, int);
752b15cb3dSCy Schubert extern	int	sendto		(int, char *, int, int, struct sockaddr *, int);
762b15cb3dSCy Schubert extern	int	setsockopt	(int, int, int, char *, int);
772b15cb3dSCy Schubert extern	int	socket		(int, int, int);
78c0b746e5SOllivier Robert #endif
79c0b746e5SOllivier Robert 
80c0b746e5SOllivier Robert #ifdef DECL_MEMMOVE_0
812b15cb3dSCy Schubert extern	void *	memmove		(void *, const void *, size_t);
82c0b746e5SOllivier Robert #endif
83c0b746e5SOllivier Robert 
84c0b746e5SOllivier Robert #ifdef DECL_MEMSET_0
852b15cb3dSCy Schubert extern	char *	memset		(char *, int, int);
86c0b746e5SOllivier Robert #endif
87c0b746e5SOllivier Robert 
88c0b746e5SOllivier Robert #ifdef DECL_MKSTEMP_0
892b15cb3dSCy Schubert extern	int	mkstemp		(char *);
90c0b746e5SOllivier Robert #endif
91c0b746e5SOllivier Robert 
92c0b746e5SOllivier Robert #ifdef DECL_MKTEMP_0
932b15cb3dSCy Schubert extern	char   *mktemp		(char *);
94c0b746e5SOllivier Robert #endif
95c0b746e5SOllivier Robert 
96c0b746e5SOllivier Robert #ifdef DECL_NLIST_0
97c0b746e5SOllivier Robert struct nlist;
982b15cb3dSCy Schubert extern int	nlist		(const char *, struct nlist *);
99c0b746e5SOllivier Robert #endif
100c0b746e5SOllivier Robert 
101c0b746e5SOllivier Robert #ifdef DECL_PLOCK_0
1022b15cb3dSCy Schubert extern	int	plock		(int);
103c0b746e5SOllivier Robert #endif
104c0b746e5SOllivier Robert 
105c0b746e5SOllivier Robert #ifdef DECL_RENAME_0
1062b15cb3dSCy Schubert extern	int	rename		(const char *, const char *);
107c0b746e5SOllivier Robert #endif
108c0b746e5SOllivier Robert 
109c0b746e5SOllivier Robert #ifdef DECL_SELECT_0
1102b15cb3dSCy Schubert #ifdef NTP_SELECT_H
1112b15cb3dSCy Schubert extern	int	select		(int, fd_set *, fd_set *, fd_set *, struct timeval *);
112c0b746e5SOllivier Robert #endif
113c0b746e5SOllivier Robert #endif
114c0b746e5SOllivier Robert 
115c0b746e5SOllivier Robert #ifdef DECL_SETITIMER_0
116c0b746e5SOllivier Robert struct itimerval;
1172b15cb3dSCy Schubert extern	int	setitimer	(int , struct itimerval *, struct itimerval *);
118c0b746e5SOllivier Robert #endif
119c0b746e5SOllivier Robert 
120c0b746e5SOllivier Robert #ifdef PRIO_PROCESS
121c0b746e5SOllivier Robert #ifdef DECL_SETPRIORITY_0
1222b15cb3dSCy Schubert extern	int	setpriority	(int, int, int);
123c0b746e5SOllivier Robert #endif
124c0b746e5SOllivier Robert #ifdef DECL_SETPRIORITY_1
1252b15cb3dSCy Schubert extern	int	setpriority	(int, id_t, int);
126c0b746e5SOllivier Robert #endif
127c0b746e5SOllivier Robert #endif
128c0b746e5SOllivier Robert 
129c0b746e5SOllivier Robert #ifdef DECL_SIGVEC_0
130c0b746e5SOllivier Robert struct sigvec;
1312b15cb3dSCy Schubert extern	int	sigvec		(int, struct sigvec *, struct sigvec *);
1329c2daa00SOllivier Robert #endif
1339c2daa00SOllivier Robert 
134c0b746e5SOllivier Robert #ifdef DECL_STDIO_0
135c0b746e5SOllivier Robert #if defined(FILE) || defined(BUFSIZ)
1362b15cb3dSCy Schubert extern	int	_flsbuf		(int, FILE *);
1372b15cb3dSCy Schubert extern	int	_filbuf		(FILE *);
1382b15cb3dSCy Schubert extern	int	fclose		(FILE *);
1392b15cb3dSCy Schubert extern	int	fflush		(FILE *);
1402b15cb3dSCy Schubert extern	int	fprintf		(FILE *, const char *, ...);
1412b15cb3dSCy Schubert extern	int	fscanf		(FILE *, const char *, ...);
1422b15cb3dSCy Schubert extern	int	fputs		(const char *, FILE *);
1432b15cb3dSCy Schubert extern	int	fputc		(int, FILE *);
1442b15cb3dSCy Schubert extern	int	fread		(char *, int, int, FILE *);
1452b15cb3dSCy Schubert extern	void	perror		(const char *);
1462b15cb3dSCy Schubert extern	int	printf		(const char *, ...);
1472b15cb3dSCy Schubert extern	int	setbuf		(FILE *, char *);
148c0b746e5SOllivier Robert # ifdef HAVE_SETLINEBUF
1492b15cb3dSCy Schubert extern	int	setlinebuf	(FILE *);
150c0b746e5SOllivier Robert # endif
1512b15cb3dSCy Schubert extern	int	setvbuf		(FILE *, char *, int, int);
1522b15cb3dSCy Schubert extern	int	scanf		(const char *, ...);
1532b15cb3dSCy Schubert extern	int	sscanf		(const char *, const char *, ...);
1542b15cb3dSCy Schubert extern	int	vfprintf	(FILE *, const char *, ...);
1552b15cb3dSCy Schubert extern	int	vsprintf	(char *, const char *, ...);
156c0b746e5SOllivier Robert #endif
157c0b746e5SOllivier Robert #endif
158c0b746e5SOllivier Robert 
159c0b746e5SOllivier Robert #ifdef DECL_STIME_0
1602b15cb3dSCy Schubert extern	int	stime		(const time_t *);
161c0b746e5SOllivier Robert #endif
162c0b746e5SOllivier Robert 
163a151a66cSOllivier Robert #ifdef DECL_STIME_1
1642b15cb3dSCy Schubert extern	int	stime		(long *);
165a151a66cSOllivier Robert #endif
166a151a66cSOllivier Robert 
167c0b746e5SOllivier Robert #ifdef DECL_STRERROR_0
1682b15cb3dSCy Schubert extern	char *	strerror		(int errnum);
169c0b746e5SOllivier Robert #endif
170c0b746e5SOllivier Robert 
171c0b746e5SOllivier Robert #ifdef DECL_STRTOL_0
1722b15cb3dSCy Schubert extern	long	strtol		(const char *, char **, int);
173c0b746e5SOllivier Robert #endif
174c0b746e5SOllivier Robert 
175c0b746e5SOllivier Robert #ifdef DECL_SYSCALL
1762b15cb3dSCy Schubert extern	int	syscall		(int, ...);
177c0b746e5SOllivier Robert #endif
178c0b746e5SOllivier Robert 
179c0b746e5SOllivier Robert #ifdef DECL_SYSLOG_0
1802b15cb3dSCy Schubert extern	void	closelog	(void);
181c0b746e5SOllivier Robert #ifndef LOG_DAEMON
1822b15cb3dSCy Schubert extern	void	openlog		(const char *, int);
183c0b746e5SOllivier Robert #else
1842b15cb3dSCy Schubert extern	void	openlog		(const char *, int, int);
185c0b746e5SOllivier Robert #endif
1862b15cb3dSCy Schubert extern	int	setlogmask	(int);
1872b15cb3dSCy Schubert extern	void	syslog		(int, const char *, ...);
188c0b746e5SOllivier Robert #endif
189c0b746e5SOllivier Robert 
190c0b746e5SOllivier Robert #ifdef DECL_TIME_0
1912b15cb3dSCy Schubert extern	time_t	time		(time_t *);
192c0b746e5SOllivier Robert #endif
193c0b746e5SOllivier Robert 
194c0b746e5SOllivier Robert #ifdef DECL_TIMEOFDAY_0
195c0b746e5SOllivier Robert #ifdef SYSV_TIMEOFDAY
1962b15cb3dSCy Schubert extern	int	gettimeofday	(struct timeval *);
1972b15cb3dSCy Schubert extern	int	settimeofday	(struct timeval *);
198c0b746e5SOllivier Robert #else /* not SYSV_TIMEOFDAY */
199c0b746e5SOllivier Robert struct timezone;
2002b15cb3dSCy Schubert extern	int	gettimeofday	(struct timeval *, struct timezone *);
2012b15cb3dSCy Schubert extern	int	settimeofday	(struct timeval *, void *);
202c0b746e5SOllivier Robert #endif /* not SYSV_TIMEOFDAY */
203c0b746e5SOllivier Robert #endif
204c0b746e5SOllivier Robert 
205c0b746e5SOllivier Robert #ifdef DECL_TOLOWER_0
2062b15cb3dSCy Schubert extern	int	tolower		(int);
207c0b746e5SOllivier Robert #endif
208c0b746e5SOllivier Robert 
209c0b746e5SOllivier Robert #ifdef DECL_TOUPPER_0
2102b15cb3dSCy Schubert extern	int	toupper		(int);
211c0b746e5SOllivier Robert #endif
212c0b746e5SOllivier Robert 
213c0b746e5SOllivier Robert /*
214c0b746e5SOllivier Robert  * Necessary variable declarations.
215c0b746e5SOllivier Robert  */
216c0b746e5SOllivier Robert #ifdef DECL_ERRNO
217c0b746e5SOllivier Robert extern	int	errno;
218c0b746e5SOllivier Robert #endif
219c0b746e5SOllivier Robert 
220ba371819SOllivier Robert #if defined(DECL_H_ERRNO) && !defined(h_errno)
221c0b746e5SOllivier Robert extern	int	h_errno;
222c0b746e5SOllivier Robert #endif
223c0b746e5SOllivier Robert 
224*767173ceSCy Schubert #ifndef HAVE_MEMCHR
225*767173ceSCy Schubert extern void *memchr(const void *s, int c, size_t n);
226*767173ceSCy Schubert #endif
227*767173ceSCy Schubert 
228*767173ceSCy Schubert #ifndef HAVE_STRNLEN
229*767173ceSCy Schubert extern size_t strnlen(const char *s, size_t n);
230*767173ceSCy Schubert #endif
231*767173ceSCy Schubert 
232*767173ceSCy Schubert 
2332b15cb3dSCy Schubert #endif	/* L_STDLIB_H */
234