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