xref: /netbsd-src/external/bsd/ntp/dist/include/l_stdlib.h (revision 50c1bace9687b37ab860a3ac85b157d33cb3f3d6)
1*50c1baceSchristos /*	$NetBSD: l_stdlib.h,v 1.6 2022/10/09 21:41:03 christos Exp $	*/
2abb0f93cSkardel 
3abb0f93cSkardel /*
4abb0f93cSkardel  * Proto types for machines that are not ANSI and POSIX	 compliant.
5abb0f93cSkardel  * This is optional
6abb0f93cSkardel  */
7abb0f93cSkardel 
88585484eSchristos #ifndef L_STDLIB_H
98585484eSchristos #define L_STDLIB_H
10abb0f93cSkardel 
11abb0f93cSkardel #ifdef HAVE_STDLIB_H
12abb0f93cSkardel # include <stdlib.h>
13abb0f93cSkardel #endif
14abb0f93cSkardel 
15abb0f93cSkardel #include <stdarg.h>
16abb0f93cSkardel #include <sys/types.h>
17abb0f93cSkardel 
18abb0f93cSkardel /* Needed for speed_t. */
19abb0f93cSkardel #ifdef HAVE_TERMIOS_H
20abb0f93cSkardel # include <termios.h>
21abb0f93cSkardel #endif
22abb0f93cSkardel 
23abb0f93cSkardel #ifdef HAVE_ERRNO_H
24abb0f93cSkardel # include <errno.h>
25abb0f93cSkardel #endif
26abb0f93cSkardel 
27abb0f93cSkardel #include "ntp_types.h"
28abb0f93cSkardel #include "ntp_proto.h"
29abb0f93cSkardel 
30abb0f93cSkardel /* Let's try to keep this more or less alphabetized... */
31abb0f93cSkardel 
32abb0f93cSkardel #ifdef DECL_ADJTIME_0
33abb0f93cSkardel struct timeval;
34abb0f93cSkardel extern	int	adjtime		(struct timeval *, struct timeval *);
35abb0f93cSkardel #endif
36abb0f93cSkardel 
37abb0f93cSkardel #ifdef DECL_BCOPY_0
38abb0f93cSkardel #ifndef bcopy
39abb0f93cSkardel extern	void	bcopy		(const char *, char *, int);
40abb0f93cSkardel #endif
41abb0f93cSkardel #endif
42abb0f93cSkardel 
43abb0f93cSkardel #ifdef DECL_BZERO_0
44abb0f93cSkardel #ifndef bzero
45abb0f93cSkardel extern	void	bzero		(char *, int);
46abb0f93cSkardel #endif
47abb0f93cSkardel #endif
48abb0f93cSkardel 
49abb0f93cSkardel #ifdef DECL_CFSETISPEED_0
50abb0f93cSkardel struct termios;
51abb0f93cSkardel extern	int	cfsetispeed	(struct termios *, speed_t);
52abb0f93cSkardel extern	int	cfsetospeed	(struct termios *, speed_t);
53abb0f93cSkardel #endif
54abb0f93cSkardel 
55abb0f93cSkardel extern	char *	getpass		(const char *);
56abb0f93cSkardel 
57abb0f93cSkardel #ifdef DECL_HSTRERROR_0
58abb0f93cSkardel extern	const char * hstrerror	(int);
59abb0f93cSkardel #endif
60abb0f93cSkardel 
61abb0f93cSkardel #ifdef DECL_INET_NTOA_0
62abb0f93cSkardel struct in_addr;
63abb0f93cSkardel extern	char *	inet_ntoa	(struct in_addr);
64abb0f93cSkardel #endif
65abb0f93cSkardel 
66abb0f93cSkardel #ifdef DECL_IOCTL_0
67abb0f93cSkardel extern	int	ioctl		(int, u_long, char *);
68abb0f93cSkardel #endif
69abb0f93cSkardel 
70abb0f93cSkardel #ifdef DECL_IPC_0
71abb0f93cSkardel struct sockaddr;
72abb0f93cSkardel extern	int	bind		(int, struct sockaddr *, int);
73abb0f93cSkardel extern	int	connect		(int, struct sockaddr *, int);
74abb0f93cSkardel extern	int	recv		(int, char *, int, int);
75abb0f93cSkardel extern	int	recvfrom	(int, char *, int, int, struct sockaddr *, int *);
76abb0f93cSkardel extern	int	send		(int, char *, int, int);
77abb0f93cSkardel extern	int	sendto		(int, char *, int, int, struct sockaddr *, int);
78abb0f93cSkardel extern	int	setsockopt	(int, int, int, char *, int);
79abb0f93cSkardel extern	int	socket		(int, int, int);
80abb0f93cSkardel #endif
81abb0f93cSkardel 
82abb0f93cSkardel #ifdef DECL_MEMMOVE_0
83abb0f93cSkardel extern	void *	memmove		(void *, const void *, size_t);
84abb0f93cSkardel #endif
85abb0f93cSkardel 
86abb0f93cSkardel #ifdef DECL_MEMSET_0
87abb0f93cSkardel extern	char *	memset		(char *, int, int);
88abb0f93cSkardel #endif
89abb0f93cSkardel 
90abb0f93cSkardel #ifdef DECL_MKSTEMP_0
91abb0f93cSkardel extern	int	mkstemp		(char *);
92abb0f93cSkardel #endif
93abb0f93cSkardel 
94abb0f93cSkardel #ifdef DECL_MKTEMP_0
95abb0f93cSkardel extern	char   *mktemp		(char *);
96abb0f93cSkardel #endif
97abb0f93cSkardel 
98abb0f93cSkardel #ifdef DECL_NLIST_0
99abb0f93cSkardel struct nlist;
100abb0f93cSkardel extern int	nlist		(const char *, struct nlist *);
101abb0f93cSkardel #endif
102abb0f93cSkardel 
103abb0f93cSkardel #ifdef DECL_PLOCK_0
104abb0f93cSkardel extern	int	plock		(int);
105abb0f93cSkardel #endif
106abb0f93cSkardel 
107abb0f93cSkardel #ifdef DECL_RENAME_0
108abb0f93cSkardel extern	int	rename		(const char *, const char *);
109abb0f93cSkardel #endif
110abb0f93cSkardel 
111abb0f93cSkardel #ifdef DECL_SELECT_0
1128585484eSchristos #ifdef NTP_SELECT_H
113abb0f93cSkardel extern	int	select		(int, fd_set *, fd_set *, fd_set *, struct timeval *);
114abb0f93cSkardel #endif
115abb0f93cSkardel #endif
116abb0f93cSkardel 
117abb0f93cSkardel #ifdef DECL_SETITIMER_0
118abb0f93cSkardel struct itimerval;
119abb0f93cSkardel extern	int	setitimer	(int , struct itimerval *, struct itimerval *);
120abb0f93cSkardel #endif
121abb0f93cSkardel 
122abb0f93cSkardel #ifdef PRIO_PROCESS
123abb0f93cSkardel #ifdef DECL_SETPRIORITY_0
124abb0f93cSkardel extern	int	setpriority	(int, int, int);
125abb0f93cSkardel #endif
126abb0f93cSkardel #ifdef DECL_SETPRIORITY_1
127abb0f93cSkardel extern	int	setpriority	(int, id_t, int);
128abb0f93cSkardel #endif
129abb0f93cSkardel #endif
130abb0f93cSkardel 
131abb0f93cSkardel #ifdef DECL_SIGVEC_0
132abb0f93cSkardel struct sigvec;
133abb0f93cSkardel extern	int	sigvec		(int, struct sigvec *, struct sigvec *);
134abb0f93cSkardel #endif
135abb0f93cSkardel 
136abb0f93cSkardel #ifdef DECL_STDIO_0
137abb0f93cSkardel #if defined(FILE) || defined(BUFSIZ)
138abb0f93cSkardel extern	int	_flsbuf		(int, FILE *);
139abb0f93cSkardel extern	int	_filbuf		(FILE *);
140abb0f93cSkardel extern	int	fclose		(FILE *);
141abb0f93cSkardel extern	int	fflush		(FILE *);
142abb0f93cSkardel extern	int	fprintf		(FILE *, const char *, ...);
143abb0f93cSkardel extern	int	fscanf		(FILE *, const char *, ...);
144abb0f93cSkardel extern	int	fputs		(const char *, FILE *);
145abb0f93cSkardel extern	int	fputc		(int, FILE *);
146abb0f93cSkardel extern	int	fread		(char *, int, int, FILE *);
147abb0f93cSkardel extern	void	perror		(const char *);
148abb0f93cSkardel extern	int	printf		(const char *, ...);
149abb0f93cSkardel extern	int	setbuf		(FILE *, char *);
150abb0f93cSkardel # ifdef HAVE_SETLINEBUF
151abb0f93cSkardel extern	int	setlinebuf	(FILE *);
152abb0f93cSkardel # endif
153abb0f93cSkardel extern	int	setvbuf		(FILE *, char *, int, int);
154abb0f93cSkardel extern	int	scanf		(const char *, ...);
155abb0f93cSkardel extern	int	sscanf		(const char *, const char *, ...);
156abb0f93cSkardel extern	int	vfprintf	(FILE *, const char *, ...);
157abb0f93cSkardel extern	int	vsprintf	(char *, const char *, ...);
158abb0f93cSkardel #endif
159abb0f93cSkardel #endif
160abb0f93cSkardel 
161abb0f93cSkardel #ifdef DECL_STIME_0
162abb0f93cSkardel extern	int	stime		(const time_t *);
163abb0f93cSkardel #endif
164abb0f93cSkardel 
165abb0f93cSkardel #ifdef DECL_STIME_1
166abb0f93cSkardel extern	int	stime		(long *);
167abb0f93cSkardel #endif
168abb0f93cSkardel 
169abb0f93cSkardel #ifdef DECL_STRERROR_0
170abb0f93cSkardel extern	char *	strerror		(int errnum);
171abb0f93cSkardel #endif
172abb0f93cSkardel 
173abb0f93cSkardel #ifdef DECL_STRTOL_0
174abb0f93cSkardel extern	long	strtol		(const char *, char **, int);
175abb0f93cSkardel #endif
176abb0f93cSkardel 
177abb0f93cSkardel #ifdef DECL_SYSCALL
178abb0f93cSkardel extern	int	syscall		(int, ...);
179abb0f93cSkardel #endif
180abb0f93cSkardel 
181abb0f93cSkardel #ifdef DECL_SYSLOG_0
182abb0f93cSkardel extern	void	closelog	(void);
183abb0f93cSkardel #ifndef LOG_DAEMON
184abb0f93cSkardel extern	void	openlog		(const char *, int);
185abb0f93cSkardel #else
186abb0f93cSkardel extern	void	openlog		(const char *, int, int);
187abb0f93cSkardel #endif
188abb0f93cSkardel extern	int	setlogmask	(int);
189abb0f93cSkardel extern	void	syslog		(int, const char *, ...);
190abb0f93cSkardel #endif
191abb0f93cSkardel 
192abb0f93cSkardel #ifdef DECL_TIME_0
193abb0f93cSkardel extern	time_t	time		(time_t *);
194abb0f93cSkardel #endif
195abb0f93cSkardel 
196abb0f93cSkardel #ifdef DECL_TIMEOFDAY_0
197abb0f93cSkardel #ifdef SYSV_TIMEOFDAY
198abb0f93cSkardel extern	int	gettimeofday	(struct timeval *);
199abb0f93cSkardel extern	int	settimeofday	(struct timeval *);
200abb0f93cSkardel #else /* not SYSV_TIMEOFDAY */
201abb0f93cSkardel struct timezone;
202abb0f93cSkardel extern	int	gettimeofday	(struct timeval *, struct timezone *);
203abb0f93cSkardel extern	int	settimeofday	(struct timeval *, void *);
204abb0f93cSkardel #endif /* not SYSV_TIMEOFDAY */
205abb0f93cSkardel #endif
206abb0f93cSkardel 
207abb0f93cSkardel #ifdef DECL_TOLOWER_0
208abb0f93cSkardel extern	int	tolower		(int);
209abb0f93cSkardel #endif
210abb0f93cSkardel 
211abb0f93cSkardel #ifdef DECL_TOUPPER_0
212abb0f93cSkardel extern	int	toupper		(int);
213abb0f93cSkardel #endif
214abb0f93cSkardel 
215abb0f93cSkardel /*
216abb0f93cSkardel  * Necessary variable declarations.
217abb0f93cSkardel  */
218abb0f93cSkardel #ifdef DECL_ERRNO
219abb0f93cSkardel extern	int	errno;
220abb0f93cSkardel #endif
221abb0f93cSkardel 
222abb0f93cSkardel #if defined(DECL_H_ERRNO) && !defined(h_errno)
223abb0f93cSkardel extern	int	h_errno;
224abb0f93cSkardel #endif
225abb0f93cSkardel 
226*50c1baceSchristos #ifndef HAVE_MEMCHR
227*50c1baceSchristos extern void *memchr(const void *s, int c, size_t n);
228*50c1baceSchristos #endif
229*50c1baceSchristos 
230*50c1baceSchristos #ifndef HAVE_STRNLEN
231*50c1baceSchristos extern size_t strnlen(const char *s, size_t n);
232*50c1baceSchristos #endif
233*50c1baceSchristos 
234*50c1baceSchristos 
2358585484eSchristos #endif	/* L_STDLIB_H */
236