blob: 58702e725ff835bd5aa2c57543775e9810e674ff [file] [log] [blame]
/* Mac MPW host-specific definitions. */
#ifndef __INCLUDE_MPW_H
#define __INCLUDE_MPW_H
#ifndef MPW
#define MPW
#endif
/* MPW C is basically ANSI, but doesn't actually enable __STDC__,
nor does it allow __STDC__ to be #defined. */
#ifndef ALMOST_STDC
#define ALMOST_STDC
#endif
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#define HAVE_TIME_T_IN_TIME_H 1
#define HAVE_STDLIB_H 1
#define HAVE_ERRNO_H 1
#define HAVE_STDDEF_H 1
#define HAVE_STRING_H 1
#define HAVE_STDARG_H 1
#define HAVE_VPRINTF 1
#ifdef USE_MW_HEADERS
#include <unix.h>
#else
#include <fcntl.h>
#include <ioctl.h>
#include <sys/stat.h>
#define HAVE_FCNTL_H 1
#ifndef O_ACCMODE
#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
#endif
#ifndef fileno
#define fileno(fp) ((fp)->_file)
#endif
/* stdio.h does not define this if __STDC__, so define here. */
#ifdef __STDC__
FILE *fdopen(int fildes, const char *mode);
#endif
#endif /* USE_MW_HEADERS */
/* Add ersatz definitions, for systems that lack them. */
#ifndef EIO
#define EIO 96
#endif
#ifndef ENOENT
#define ENOENT 97
#endif
#ifndef EACCES
#define EACCES 98
#endif
#ifndef ENOSYS
#define ENOSYS 99
#endif
#ifndef R_OK
#define R_OK 4
#define W_OK 2
#define X_OK 1
#endif
/* Binary files have different characteristics; for instance, no cr/nl
translation. */
#define USE_BINARY_FOPEN
#include <spin.h>
#ifdef MPW_C
#undef __PTR_TO_INT
#define __PTR_TO_INT(P) ((int)(P))
#undef __INT_TO_PTR
#define __INT_TO_PTR(P) ((char *)(P))
#endif /* MPW_C */
#define NO_FCNTL
int fstat ();
FILE *mpw_fopen ();
int mpw_fseek ();
int mpw_fread ();
int mpw_fwrite ();
int mpw_access ();
int mpw_open ();
int mpw_creat ();
void mpw_abort (void);
/* Map these standard functions to improved versions in libiberty. */
#define fopen mpw_fopen
#define fseek mpw_fseek
#define fread mpw_fread
#define fwrite mpw_fwrite
#define open mpw_open
#define access mpw_access
#define creat mpw_creat
#define abort mpw_abort
#define POSIX_UTIME
#define LOSING_TOTALLY
/* Define this so that files will be closed before being unlinked. */
#define CLOSE_BEFORE_UNLINK
#endif /* __INCLUDE_MPW_H */