/* Host definition file for Sun-4 running with gcc, using "long long" for addresses, to handle 64-bit target systems. */ #include #include #include #include #include #include #include #include #ifndef O_ACCMODE #define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR) #endif #define SEEK_SET 0 #define SEEK_CUR 1 /* Make the basic types 64-bit quantities on the host */ #define HOST_64_BIT long long extern PROTO(int, abort,(void)); extern PROTO(int, close,(int)); extern PROTO(int, fcntl,(int des, int cmd, int e)); extern PROTO(int, fprintf,(FILE *,char *,...)); extern PROTO(int, printf,(char *,...)); extern PROTO(int, qsort,(void *data,int els, int siz, int func())); extern PROTO(void, exit,(int)); extern PROTO(int, fseek,(FILE*, int, int)); extern PROTO(int, fclose,(FILE*)); extern PROTO(void, bcopy,(char*,char*,int)); extern PROTO(int, bcmp,(char *, char *, int)); extern PROTO(void, bzero,(char *, int)); extern PROTO(PTR,memset,(PTR, int,unsigned int)); #ifndef __GNUC__ PROTO(PTR, memcpy,(PTR,CONST PTR,unsigned int)); #else /* PROTO(char *, memcpy,(char *,CONST char *,unsigned int)); */ #endif extern PROTO(int,getuid,()); extern PROTO(int,getgid,()); extern char * strchr(); extern PROTO(void, perror,(CONST char *)); extern char *getenv(); extern char *memchr(); extern char *strrchr(); extern int chmod(); extern int fread(); extern int fstat(); extern int fwrite(); extern int sscanf(); extern int stat(); extern int strtol(); #ifndef DONTDECLARE_MALLOC extern PROTO(PTR,malloc,(unsigned)); extern PROTO(PTR ,realloc, (PTR, unsigned)); #endif extern PROTO(int, free,(PTR)); extern char *strrchr(); extern char *ctime(); extern int _flsbuf(); extern int fclose(); extern int time(); extern int utimes(); extern int vfprintf(); extern long atol(); extern char *getenv(); extern int fputc(); extern int unlink(); /* EXACT TYPES */ typedef char int8e_type; typedef unsigned char uint8e_type; typedef short int16e_type; typedef unsigned short uint16e_type; typedef int int32e_type; typedef unsigned int uint32e_type; #ifdef __GNUC__ typedef unsigned long long uint64e_type; #else typedef struct { uint32e_type low, high; } uint64e_type; #endif /* CORRECT SIZE OR GREATER */ typedef char int8_type; typedef unsigned char uint8_type; typedef short int16_type; typedef unsigned short uint16_type; typedef int int32_type; typedef unsigned int uint32_type; #ifdef __GNUC__ typedef unsigned long long uint64_type; typedef long long int64_type; #else typedef struct { uint32e_type low, high; } uint64_type; typedef struct { uint32e_type low, high; } int64_type; #endif #define BYTES_IN_PRINTF_INT 4 #ifndef __GNUC__ #define uint64_typeLOW(x) (uint32_type)(((x).low)) #define uint64_typeHIGH(x) (uint32_type)(((x).high)) #else #define uint64_typeLOW(x) (uint32_type)(((x) & 0xffffffff)) #define uint64_typeHIGH(x) (uint32_type)(((x) >> 32) & 0xffffffff) #endif /* Macros for the 'type' part of an fopen, freopen or fdopen. [Update] */ #define FOPEN_RB "r" #define FOPEN_WB "w" #define FOPEN_AB "a" #define FOPEN_RUB "r+" #define FOPEN_WUB "w+" #define FOPEN_AUB "a+" #define FOPEN_RT "r" #define FOPEN_WT "w" #define FOPEN_AT "a" #define FOPEN_RUT "r+" #define FOPEN_WUT "w+" #define FOPEN_AUT "a+"