/*
* Copyright (c) 1989, 1990, 1993, 1994, 1995, 1996
*      The Regents of the University of California.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that: (1) source code distributions
* retain the above copyright notice and this paragraph in its entirety, (2)
* distributions including binary code include the above copyright notice and
* this paragraph in its entirety in the documentation or other materials
* provided with the distribution, and (3) all advertising materials mentioning
* features or use of this software display the following acknowledgement:
* ``This product includes software developed by the University of California,
* Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
* the University nor the names of its contributors may be used to endorse
* or promote products derived from this software without specific prior
* written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/

/* Prototypes missing in SunOS 4 */
#ifdef FILE
int     _filbuf(FILE *);
int     _flsbuf(u_char, FILE *);
int     fclose(FILE *);
int     fflush(FILE *);
int     fgetc(FILE *);
int     fprintf(FILE *, const char *, ...);
int     fputc(int, FILE *);
int     fputs(const char *, FILE *);
u_int   fread(void *, u_int, u_int, FILE *);
int     fseek(FILE *, long, int);
u_int   fwrite(const void *, u_int, u_int, FILE *);
int     pclose(FILE *);
void    rewind(FILE *);
void    setbuf(FILE *, char *);
int     setlinebuf(FILE *);
int     ungetc(int, FILE *);
int     vfprintf(FILE *, const char *, ...);
int     vprintf(const char *, ...);
#endif

#if __GNUC__ <= 1
int     read(int, char *, u_int);
int     write(int, char *, u_int);
#endif

long    a64l(const char *);
#ifdef __STDC__
struct  sockaddr;
#endif
int     accept(int, struct sockaddr *, int *);
int     bind(int, struct sockaddr *, int);
int     bcmp(const void *, const void *, u_int);
void    bcopy(const void *, void *, u_int);
void    bzero(void *, int);
int     chroot(const char *);
int     close(int);
void    closelog(void);
int     connect(int, struct sockaddr *, int);
char    *crypt(const char *, const char *);
int     daemon(int, int);
int     fchmod(int, int);
int     fchown(int, int, int);
void    endgrent(void);
void    endpwent(void);
void    endservent(void);
#ifdef __STDC__
struct  ether_addr;
#endif
struct  ether_addr *ether_aton(const char *);
int     flock(int, int);
#ifdef __STDC__
struct  stat;
#endif
int     fstat(int, struct stat *);
#ifdef __STDC__
struct statfs;
#endif
int     fstatfs(int, struct statfs *);
int     fsync(int);
#ifdef __STDC__
struct timeb;
#endif
int     ftime(struct timeb *);
int     ftruncate(int, off_t);
int     getdtablesize(void);
long    gethostid(void);
int     gethostname(char *, int);
int     getopt(int, char * const *, const char *);
int     getpagesize(void);
char    *getpass(char *);
int     getpeername(int, struct sockaddr *, int *);
int     getpriority(int, int);
#ifdef __STDC__
struct  rlimit;
#endif
int     getrlimit(int, struct rlimit *);
int     getsockname(int, struct sockaddr *, int *);
int     getsockopt(int, int, int, char *, int *);
#ifdef __STDC__
struct  timeval;
struct  timezone;
#endif
int     gettimeofday(struct timeval *, struct timezone *);
char    *getusershell(void);
char    *getwd(char *);
int     initgroups(const char *, int);
int     ioctl(int, int, caddr_t);
int     iruserok(u_long, int, char *, char *);
int     isatty(int);
int     killpg(int, int);
int     listen(int, int);
#ifdef __STDC__
struct  utmp;
#endif
void    login(struct utmp *);
int     logout(const char *);
off_t   lseek(int, off_t, int);
int     lstat(const char *, struct stat *);
int     mkstemp(char *);
char    *mktemp(char *);
int     munmap(caddr_t, int);
void    openlog(const char *, int, int);
void    perror(const char *);
int     printf(const char *, ...);
int     puts(const char *);
long    random(void);
int     readlink(const char *, char *, int);
#ifdef __STDC__
struct  iovec;
#endif
int     readv(int, struct iovec *, int);
int     recv(int, char *, u_int, int);
int     recvfrom(int, char *, u_int, int, struct sockaddr *, int *);
int     rename(const char *, const char *);
int     rcmd(char **, u_short, char *, char *, char *, int *);
int     rresvport(int *);
int     send(int, char *, u_int, int);
int     sendto(int, char *, u_int, int, struct sockaddr *, int);
int     setenv(const char *, const char *, int);
int     seteuid(int);
int     setpriority(int, int, int);
int     select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
int     setpgrp(int, int);
void    setpwent(void);
int     setrlimit(int, struct rlimit *);
void    setservent(int);
int     setsockopt(int, int, int, char *, int);
int     shutdown(int, int);
int     sigblock(int);
void    (*signal (int, void (*) (int))) (int);
int     sigpause(int);
int     sigsetmask(int);
#ifdef __STDC__
struct  sigvec;
#endif
int     sigvec(int, struct sigvec *, struct sigvec*);
int     snprintf(char *, size_t, const char *, ...);
int     socket(int, int, int);
int     socketpair(int, int, int, int *);
int     symlink(const char *, const char *);
void    srandom(int);
int     sscanf(char *, const char *, ...);
int     stat(const char *, struct stat *);
int     statfs(char *, struct statfs *);
char    *strerror(int);
#ifdef __STDC__
struct  tm;
#endif
int     strftime(char *, int, char *, struct tm *);
long    strtol(const char *, char **, int);
void    sync(void);
void    syslog(int, const char *, ...);
int     system(const char *);
long    tell(int);
time_t  time(time_t *);
char    *timezone(int, int);
int     tolower(int);
int     toupper(int);
int     truncate(char *, off_t);
void    unsetenv(const char *);
int     vfork(void);
int     vsprintf(char *, const char *, ...);
int     writev(int, struct iovec *, int);
#ifdef __STDC__
struct  rusage;
#endif
int     utimes(const char *, struct timeval *);
#if __GNUC__ <= 1
int     wait(int *);
pid_t   wait3(int *, int, struct rusage *);
#endif

/* Ugly signal hacking */
#ifdef SIG_ERR
#undef SIG_ERR
#define SIG_ERR         (void (*)(int))-1
#undef SIG_DFL
#define SIG_DFL         (void (*)(int))0
#undef SIG_IGN
#define SIG_IGN         (void (*)(int))1

#ifdef KERNEL
#undef SIG_CATCH
#define SIG_CATCH       (void (*)(int))2
#endif
#undef SIG_HOLD
#define SIG_HOLD        (void (*)(int))3
#endif