12159047fSniklas /* Mac MPW host-specific definitions. */ 22159047fSniklas 32159047fSniklas #ifndef __INCLUDE_MPW_H 42159047fSniklas #define __INCLUDE_MPW_H 52159047fSniklas 62159047fSniklas #ifndef MPW 72159047fSniklas #define MPW 82159047fSniklas #endif 92159047fSniklas 102159047fSniklas /* MPW C is basically ANSI, but doesn't actually enable __STDC__, 112159047fSniklas nor does it allow __STDC__ to be #defined. */ 122159047fSniklas 132159047fSniklas #ifndef ALMOST_STDC 142159047fSniklas #define ALMOST_STDC 152159047fSniklas #endif 162159047fSniklas 172159047fSniklas #include <stdio.h> 182159047fSniklas #include <ctype.h> 192159047fSniklas #include <errno.h> 202159047fSniklas 21*c88b1d6cSniklas #define HAVE_TIME_T_IN_TIME_H 1 222159047fSniklas 23*c88b1d6cSniklas #define HAVE_STDLIB_H 1 242159047fSniklas 25*c88b1d6cSniklas #define HAVE_ERRNO_H 1 262159047fSniklas 27*c88b1d6cSniklas #define HAVE_STDDEF_H 1 282159047fSniklas 29*c88b1d6cSniklas #define HAVE_STRING_H 1 302159047fSniklas 31*c88b1d6cSniklas #define HAVE_STDARG_H 1 32*c88b1d6cSniklas 33*c88b1d6cSniklas #define HAVE_VPRINTF 1 342159047fSniklas 352159047fSniklas #ifdef USE_MW_HEADERS 362159047fSniklas 372159047fSniklas #include <unix.h> 382159047fSniklas 392159047fSniklas #else 402159047fSniklas 412159047fSniklas #include <fcntl.h> 422159047fSniklas #include <ioctl.h> 432159047fSniklas #include <sys/stat.h> 442159047fSniklas 45*c88b1d6cSniklas #define HAVE_FCNTL_H 1 46*c88b1d6cSniklas 472159047fSniklas #ifndef O_ACCMODE 482159047fSniklas #define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR) 492159047fSniklas #endif 502159047fSniklas 512159047fSniklas #ifndef fileno 522159047fSniklas #define fileno(fp) ((fp)->_file) 532159047fSniklas #endif 542159047fSniklas 552159047fSniklas /* stdio.h does not define this if __STDC__, so define here. */ 562159047fSniklas 572159047fSniklas #ifdef __STDC__ 582159047fSniklas FILE *fdopen(int fildes, const char *mode); 592159047fSniklas #endif 602159047fSniklas 612159047fSniklas #endif /* USE_MW_HEADERS */ 622159047fSniklas 632159047fSniklas /* Add ersatz definitions, for systems that lack them. */ 642159047fSniklas 652159047fSniklas #ifndef EIO 662159047fSniklas #define EIO 96 672159047fSniklas #endif 682159047fSniklas #ifndef ENOENT 692159047fSniklas #define ENOENT 97 702159047fSniklas #endif 712159047fSniklas #ifndef EACCES 722159047fSniklas #define EACCES 98 732159047fSniklas #endif 742159047fSniklas #ifndef ENOSYS 752159047fSniklas #define ENOSYS 99 762159047fSniklas #endif 772159047fSniklas 782159047fSniklas #ifndef R_OK 792159047fSniklas #define R_OK 4 802159047fSniklas #define W_OK 2 812159047fSniklas #define X_OK 1 822159047fSniklas #endif 832159047fSniklas 842159047fSniklas /* Binary files have different characteristics; for instance, no cr/nl 852159047fSniklas translation. */ 862159047fSniklas 872159047fSniklas #define USE_BINARY_FOPEN 882159047fSniklas 892159047fSniklas #include <spin.h> 902159047fSniklas 912159047fSniklas #ifdef MPW_C 922159047fSniklas #undef __PTR_TO_INT 932159047fSniklas #define __PTR_TO_INT(P) ((int)(P)) 942159047fSniklas #undef __INT_TO_PTR 952159047fSniklas #define __INT_TO_PTR(P) ((char *)(P)) 96*c88b1d6cSniklas #endif /* MPW_C */ 972159047fSniklas 982159047fSniklas #define NO_FCNTL 992159047fSniklas 1002159047fSniklas int fstat (); 1012159047fSniklas 1022159047fSniklas FILE *mpw_fopen (); 1032159047fSniklas int mpw_fseek (); 1042159047fSniklas int mpw_fread (); 1052159047fSniklas int mpw_fwrite (); 106*c88b1d6cSniklas int mpw_access (); 107*c88b1d6cSniklas int mpw_open (); 1082159047fSniklas int mpw_creat (); 109*c88b1d6cSniklas void mpw_abort (void); 1102159047fSniklas 1112159047fSniklas /* Map these standard functions to improved versions in libiberty. */ 1122159047fSniklas 1132159047fSniklas #define fopen mpw_fopen 1142159047fSniklas #define fseek mpw_fseek 1152159047fSniklas #define fread mpw_fread 1162159047fSniklas #define fwrite mpw_fwrite 117*c88b1d6cSniklas #define open mpw_open 118*c88b1d6cSniklas #define access mpw_access 1192159047fSniklas #define creat mpw_creat 120*c88b1d6cSniklas #define abort mpw_abort 1212159047fSniklas 1222159047fSniklas #define POSIX_UTIME 1232159047fSniklas 1242159047fSniklas #define LOSING_TOTALLY 1252159047fSniklas 1262159047fSniklas /* Define this so that files will be closed before being unlinked. */ 1272159047fSniklas 1282159047fSniklas #define CLOSE_BEFORE_UNLINK 1292159047fSniklas 1302159047fSniklas #endif /* __INCLUDE_MPW_H */ 131