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