1*05b00f60SXin Li /* 2*05b00f60SXin Li * Copyright (c) 1989, 1990, 1993, 1994, 1995, 1996 3*05b00f60SXin Li * The Regents of the University of California. All rights reserved. 4*05b00f60SXin Li * 5*05b00f60SXin Li * Redistribution and use in source and binary forms, with or without 6*05b00f60SXin Li * modification, are permitted provided that: (1) source code distributions 7*05b00f60SXin Li * retain the above copyright notice and this paragraph in its entirety, (2) 8*05b00f60SXin Li * distributions including binary code include the above copyright notice and 9*05b00f60SXin Li * this paragraph in its entirety in the documentation or other materials 10*05b00f60SXin Li * provided with the distribution, and (3) all advertising materials mentioning 11*05b00f60SXin Li * features or use of this software display the following acknowledgement: 12*05b00f60SXin Li * ``This product includes software developed by the University of California, 13*05b00f60SXin Li * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 14*05b00f60SXin Li * the University nor the names of its contributors may be used to endorse 15*05b00f60SXin Li * or promote products derived from this software without specific prior 16*05b00f60SXin Li * written permission. 17*05b00f60SXin Li * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 18*05b00f60SXin Li * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 19*05b00f60SXin Li * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 20*05b00f60SXin Li */ 21*05b00f60SXin Li 22*05b00f60SXin Li /* Prototypes missing in SunOS 4 */ 23*05b00f60SXin Li #ifdef FILE 24*05b00f60SXin Li int _filbuf(FILE *); 25*05b00f60SXin Li int _flsbuf(u_char, FILE *); 26*05b00f60SXin Li int fclose(FILE *); 27*05b00f60SXin Li int fflush(FILE *); 28*05b00f60SXin Li int fgetc(FILE *); 29*05b00f60SXin Li int fprintf(FILE *, const char *, ...); 30*05b00f60SXin Li int fputc(int, FILE *); 31*05b00f60SXin Li int fputs(const char *, FILE *); 32*05b00f60SXin Li u_int fread(void *, u_int, u_int, FILE *); 33*05b00f60SXin Li int fseek(FILE *, long, int); 34*05b00f60SXin Li u_int fwrite(const void *, u_int, u_int, FILE *); 35*05b00f60SXin Li int pclose(FILE *); 36*05b00f60SXin Li void rewind(FILE *); 37*05b00f60SXin Li void setbuf(FILE *, char *); 38*05b00f60SXin Li int setlinebuf(FILE *); 39*05b00f60SXin Li int ungetc(int, FILE *); 40*05b00f60SXin Li int vfprintf(FILE *, const char *, ...); 41*05b00f60SXin Li int vprintf(const char *, ...); 42*05b00f60SXin Li #endif 43*05b00f60SXin Li 44*05b00f60SXin Li #if __GNUC__ <= 1 45*05b00f60SXin Li int read(int, char *, u_int); 46*05b00f60SXin Li int write(int, char *, u_int); 47*05b00f60SXin Li #endif 48*05b00f60SXin Li 49*05b00f60SXin Li long a64l(const char *); 50*05b00f60SXin Li #ifdef __STDC__ 51*05b00f60SXin Li struct sockaddr; 52*05b00f60SXin Li #endif 53*05b00f60SXin Li int accept(int, struct sockaddr *, int *); 54*05b00f60SXin Li int bind(int, struct sockaddr *, int); 55*05b00f60SXin Li int bcmp(const void *, const void *, u_int); 56*05b00f60SXin Li void bcopy(const void *, void *, u_int); 57*05b00f60SXin Li void bzero(void *, int); 58*05b00f60SXin Li int chroot(const char *); 59*05b00f60SXin Li int close(int); 60*05b00f60SXin Li void closelog(void); 61*05b00f60SXin Li int connect(int, struct sockaddr *, int); 62*05b00f60SXin Li char *crypt(const char *, const char *); 63*05b00f60SXin Li int daemon(int, int); 64*05b00f60SXin Li int fchmod(int, int); 65*05b00f60SXin Li int fchown(int, int, int); 66*05b00f60SXin Li void endgrent(void); 67*05b00f60SXin Li void endpwent(void); 68*05b00f60SXin Li void endservent(void); 69*05b00f60SXin Li #ifdef __STDC__ 70*05b00f60SXin Li struct ether_addr; 71*05b00f60SXin Li #endif 72*05b00f60SXin Li struct ether_addr *ether_aton(const char *); 73*05b00f60SXin Li int flock(int, int); 74*05b00f60SXin Li #ifdef __STDC__ 75*05b00f60SXin Li struct stat; 76*05b00f60SXin Li #endif 77*05b00f60SXin Li int fstat(int, struct stat *); 78*05b00f60SXin Li #ifdef __STDC__ 79*05b00f60SXin Li struct statfs; 80*05b00f60SXin Li #endif 81*05b00f60SXin Li int fstatfs(int, struct statfs *); 82*05b00f60SXin Li int fsync(int); 83*05b00f60SXin Li #ifdef __STDC__ 84*05b00f60SXin Li struct timeb; 85*05b00f60SXin Li #endif 86*05b00f60SXin Li int ftime(struct timeb *); 87*05b00f60SXin Li int ftruncate(int, off_t); 88*05b00f60SXin Li int getdtablesize(void); 89*05b00f60SXin Li long gethostid(void); 90*05b00f60SXin Li int gethostname(char *, int); 91*05b00f60SXin Li int getopt(int, char * const *, const char *); 92*05b00f60SXin Li int getpagesize(void); 93*05b00f60SXin Li char *getpass(char *); 94*05b00f60SXin Li int getpeername(int, struct sockaddr *, int *); 95*05b00f60SXin Li int getpriority(int, int); 96*05b00f60SXin Li #ifdef __STDC__ 97*05b00f60SXin Li struct rlimit; 98*05b00f60SXin Li #endif 99*05b00f60SXin Li int getrlimit(int, struct rlimit *); 100*05b00f60SXin Li int getsockname(int, struct sockaddr *, int *); 101*05b00f60SXin Li int getsockopt(int, int, int, char *, int *); 102*05b00f60SXin Li #ifdef __STDC__ 103*05b00f60SXin Li struct timeval; 104*05b00f60SXin Li struct timezone; 105*05b00f60SXin Li #endif 106*05b00f60SXin Li int gettimeofday(struct timeval *, struct timezone *); 107*05b00f60SXin Li char *getusershell(void); 108*05b00f60SXin Li char *getwd(char *); 109*05b00f60SXin Li int initgroups(const char *, int); 110*05b00f60SXin Li int ioctl(int, int, caddr_t); 111*05b00f60SXin Li int iruserok(u_long, int, char *, char *); 112*05b00f60SXin Li int isatty(int); 113*05b00f60SXin Li int killpg(int, int); 114*05b00f60SXin Li int listen(int, int); 115*05b00f60SXin Li #ifdef __STDC__ 116*05b00f60SXin Li struct utmp; 117*05b00f60SXin Li #endif 118*05b00f60SXin Li void login(struct utmp *); 119*05b00f60SXin Li int logout(const char *); 120*05b00f60SXin Li off_t lseek(int, off_t, int); 121*05b00f60SXin Li int lstat(const char *, struct stat *); 122*05b00f60SXin Li int mkstemp(char *); 123*05b00f60SXin Li char *mktemp(char *); 124*05b00f60SXin Li int munmap(caddr_t, int); 125*05b00f60SXin Li void openlog(const char *, int, int); 126*05b00f60SXin Li void perror(const char *); 127*05b00f60SXin Li int printf(const char *, ...); 128*05b00f60SXin Li int puts(const char *); 129*05b00f60SXin Li long random(void); 130*05b00f60SXin Li int readlink(const char *, char *, int); 131*05b00f60SXin Li #ifdef __STDC__ 132*05b00f60SXin Li struct iovec; 133*05b00f60SXin Li #endif 134*05b00f60SXin Li int readv(int, struct iovec *, int); 135*05b00f60SXin Li int recv(int, char *, u_int, int); 136*05b00f60SXin Li int recvfrom(int, char *, u_int, int, struct sockaddr *, int *); 137*05b00f60SXin Li int rename(const char *, const char *); 138*05b00f60SXin Li int rcmd(char **, u_short, char *, char *, char *, int *); 139*05b00f60SXin Li int rresvport(int *); 140*05b00f60SXin Li int send(int, char *, u_int, int); 141*05b00f60SXin Li int sendto(int, char *, u_int, int, struct sockaddr *, int); 142*05b00f60SXin Li int setenv(const char *, const char *, int); 143*05b00f60SXin Li int seteuid(int); 144*05b00f60SXin Li int setpriority(int, int, int); 145*05b00f60SXin Li int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 146*05b00f60SXin Li int setpgrp(int, int); 147*05b00f60SXin Li void setpwent(void); 148*05b00f60SXin Li int setrlimit(int, struct rlimit *); 149*05b00f60SXin Li void setservent(int); 150*05b00f60SXin Li int setsockopt(int, int, int, char *, int); 151*05b00f60SXin Li int shutdown(int, int); 152*05b00f60SXin Li int sigblock(int); 153*05b00f60SXin Li void (*signal (int, void (*) (int))) (int); 154*05b00f60SXin Li int sigpause(int); 155*05b00f60SXin Li int sigsetmask(int); 156*05b00f60SXin Li #ifdef __STDC__ 157*05b00f60SXin Li struct sigvec; 158*05b00f60SXin Li #endif 159*05b00f60SXin Li int sigvec(int, struct sigvec *, struct sigvec*); 160*05b00f60SXin Li int snprintf(char *, size_t, const char *, ...); 161*05b00f60SXin Li int socket(int, int, int); 162*05b00f60SXin Li int socketpair(int, int, int, int *); 163*05b00f60SXin Li int symlink(const char *, const char *); 164*05b00f60SXin Li void srandom(int); 165*05b00f60SXin Li int sscanf(char *, const char *, ...); 166*05b00f60SXin Li int stat(const char *, struct stat *); 167*05b00f60SXin Li int statfs(char *, struct statfs *); 168*05b00f60SXin Li char *strerror(int); 169*05b00f60SXin Li #ifdef __STDC__ 170*05b00f60SXin Li struct tm; 171*05b00f60SXin Li #endif 172*05b00f60SXin Li int strftime(char *, int, char *, struct tm *); 173*05b00f60SXin Li long strtol(const char *, char **, int); 174*05b00f60SXin Li void sync(void); 175*05b00f60SXin Li void syslog(int, const char *, ...); 176*05b00f60SXin Li int system(const char *); 177*05b00f60SXin Li long tell(int); 178*05b00f60SXin Li time_t time(time_t *); 179*05b00f60SXin Li char *timezone(int, int); 180*05b00f60SXin Li int tolower(int); 181*05b00f60SXin Li int toupper(int); 182*05b00f60SXin Li int truncate(char *, off_t); 183*05b00f60SXin Li void unsetenv(const char *); 184*05b00f60SXin Li int vfork(void); 185*05b00f60SXin Li int vsprintf(char *, const char *, ...); 186*05b00f60SXin Li int writev(int, struct iovec *, int); 187*05b00f60SXin Li #ifdef __STDC__ 188*05b00f60SXin Li struct rusage; 189*05b00f60SXin Li #endif 190*05b00f60SXin Li int utimes(const char *, struct timeval *); 191*05b00f60SXin Li #if __GNUC__ <= 1 192*05b00f60SXin Li int wait(int *); 193*05b00f60SXin Li pid_t wait3(int *, int, struct rusage *); 194*05b00f60SXin Li #endif 195*05b00f60SXin Li 196*05b00f60SXin Li /* Ugly signal hacking */ 197*05b00f60SXin Li #ifdef SIG_ERR 198*05b00f60SXin Li #undef SIG_ERR 199*05b00f60SXin Li #define SIG_ERR (void (*)(int))-1 200*05b00f60SXin Li #undef SIG_DFL 201*05b00f60SXin Li #define SIG_DFL (void (*)(int))0 202*05b00f60SXin Li #undef SIG_IGN 203*05b00f60SXin Li #define SIG_IGN (void (*)(int))1 204*05b00f60SXin Li 205*05b00f60SXin Li #ifdef KERNEL 206*05b00f60SXin Li #undef SIG_CATCH 207*05b00f60SXin Li #define SIG_CATCH (void (*)(int))2 208*05b00f60SXin Li #endif 209*05b00f60SXin Li #undef SIG_HOLD 210*05b00f60SXin Li #define SIG_HOLD (void (*)(int))3 211*05b00f60SXin Li #endif 212