1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #ifndef pr_sunos4_h___ 6 #define pr_sunos4_h___ 7 8 #ifndef SVR4 9 10 /* 11 ** Hodge podge of random missing prototypes for the Sunos4 system 12 */ 13 #include <stdio.h> 14 #include <stdarg.h> 15 #include <time.h> 16 #include <limits.h> 17 #include <sys/types.h> 18 19 #define PATH_MAX _POSIX_PATH_MAX 20 21 struct timeval; 22 struct timezone; 23 struct itimerval; 24 struct sockaddr; 25 struct stat; 26 struct tm; 27 28 /* ctype.h */ 29 extern int tolower(int); 30 extern int toupper(int); 31 32 /* errno.h */ 33 extern char *sys_errlist[]; 34 extern int sys_nerr; 35 36 #define strerror(e) sys_errlist[((unsigned)(e) < sys_nerr) ? e : 0] 37 38 extern void perror(const char *); 39 40 /* getopt */ 41 extern char *optarg; 42 extern int optind; 43 extern int getopt(int argc, char **argv, char *spec); 44 45 /* math.h */ 46 extern int srandom(long val); 47 extern long random(void); 48 49 /* memory.h */ 50 #define memmove(to,from,len) bcopy((char*)(from),(char*)(to),len) 51 52 extern void bcopy(const char *, char *, int); 53 54 /* signal.h */ 55 /* 56 ** SunOS4 sigaction hides interrupts by default, so we can safely define 57 ** SA_RESTART to 0 (HP-UX is a counter-example -- its sigaction does not 58 ** hide interrupts but lacks an SA_RESTART option; you must use sigvector 59 ** and tweak the sigcontext from within each signal handler!). 60 */ 61 #define SA_RESTART 0 62 #define SA_SIGINFO 0 63 64 /* stdio.h */ 65 extern int printf(const char *, ...); 66 extern int fprintf(FILE *, const char *, ...); 67 extern int vprintf(const char *, va_list); 68 extern int vfprintf(FILE *, const char *, va_list); 69 extern char *vsprintf(char *, const char *, va_list); 70 extern int scanf(const char *, ...); 71 extern int sscanf(const char *, const char *, ...); 72 extern int fscanf(FILE *, const char *, ...); 73 extern int fgetc(FILE *); 74 extern int fputc(int, FILE *); 75 extern int fputs(const char *, FILE *); 76 extern int puts(const char *); 77 extern int fread(void *, size_t, size_t, FILE *); 78 extern int fwrite(const char *, int, int, FILE *); 79 extern int fseek(FILE *, long, int); 80 extern long ftell(FILE *); 81 extern int rewind(FILE *); 82 extern int fflush(FILE *); 83 extern int _flsbuf(unsigned char, FILE *); 84 extern int fclose(FILE *); 85 extern int remove(const char *); 86 extern int setvbuf(FILE *, char *, int, size_t); 87 extern int system(const char *); 88 extern FILE *popen(const char *, const char *); 89 extern int pclose(FILE *); 90 91 /* stdlib.h */ 92 #define strtoul strtol 93 94 extern int isatty(int fildes); 95 extern long strtol(const char *, char **, int); 96 extern int putenv(const char *); 97 extern void srand48(long); 98 extern long lrand48(void); 99 extern double drand48(void); 100 101 /* string.h */ 102 extern int strcasecmp(const char *, const char *); 103 extern int strncasecmp(const char *, const char *, size_t); 104 extern int strcoll(const char *, const char *); 105 106 /* time.h */ 107 extern time_t mktime(struct tm *); 108 extern size_t strftime(char *, size_t, const char *, const struct tm *); 109 extern int gettimeofday(struct timeval *, struct timezone *); 110 extern int setitimer(int, struct itimerval *, struct itimerval *); 111 extern time_t time(time_t *); 112 extern time_t timegm(struct tm *); 113 extern struct tm *localtime(const time_t *); 114 extern struct tm *gmtime(const time_t *); 115 116 /* unistd.h */ 117 extern int rename(const char *, const char *); 118 extern int ioctl(int, int, int *arg); 119 extern int connect(int, struct sockaddr *, int); 120 extern int readlink(const char *, char *, int); 121 extern int symlink(const char *, const char *); 122 extern int ftruncate(int, off_t); 123 extern int fchmod(int, mode_t); 124 extern int fchown(int, uid_t, gid_t); 125 extern int lstat(const char *, struct stat *); 126 extern int fstat(int, struct stat *); 127 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 128 extern int gethostname(char *, int); 129 extern char *getwd(char *); 130 extern int getpagesize(void); 131 132 #endif /* SVR4 */ 133 134 #endif /* pr_sunos4_h___ */ 135