/* p4port.h (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved. Declarations for non-standard C runtime library functions. CB 5.1 MULTI-PLATFORM RELEASE DATE: JULY 15/94 */ #ifdef XVT_OS #include #endif #ifdef S4UNIX #define S4OPTIMIZE_OFF #ifdef S4MACINTOSH #define S4BYTEORDER_3210 #define S4NO_ATOF #define S4NO_FCVT #define S4NO_ECVT #else #define S4LOCKF /* use function lockf() for locking */ /* #define S4NO_MEMMOVE */ /* use if memmove() not found */ #endif /* CodeBase Multi-Platform defines */ #define S4ERRNO /* use global variable, 'errno' */ #define S4NO_CHSIZE /* use if chsize() not found */ #define S4NO_DUP /* use if dup() not found/not required */ #define S4NO_FILELENGTH /* use if filelength() not found */ #define S4NO_NEGATIVE_LOCK /* use if negative locking not supported */ #define S4NO_POW /* use if pow() not found */ /* #define S4NO_REMOVE */ /* use if remove() not found */ /* #define S4NO_RENAME */ /* use if rename() not found */ #define S4NO_STRLWR /* use if strlwr() not found */ #define S4NO_STRNICMP /* use if strnicmp() not found */ #define S4NO_STRUPR /* use if strupr() not found */ /* #define S4BYTEORDER_2301 */ /* use for 2301 systems */ /* #define S4BYTEORDER_3210 */ /* use for 3210 systems */ /* #define S464BIT */ /* use for 64 bit systems */ /* #define S4BYTE_SWAP */ /* use for swapping bytes on 3210 or 2301 systems */ #define S4MEMCMP /* use if memcmp() uses signed byte comparison */ /* #define S4LSEEK */ /* use if lseek() cannot seek past EOF */ /* #define S4NO_ATOF */ /* use if atof() not found */ /* #define S4NO_ECVT */ /* use if ecvt() not found */ /* #define S4NO_FCVT */ /* use if fcvt() not found */ /* #define S4NO_SIZE_T */ /* use if variable size_t not found */ /* #define S4NO_STDLIB */ /* use if no stdlib include file */ /* #define S4NO_UNISTD */ /* use if no unistd include file */ #endif #ifdef S4NO_SIZE_T typedef unsigned size_t ; #endif #ifdef S4UNIX #define S4CMP_PARM void * /* These functions are usually declared */ #ifndef S4MACINTOSH /* in other system header files, and */ extern long filelength(int hand) ; /* therefore most of these declarations */ #ifdef S4NO_STDLIB extern int atoi(char * nptr) ; /* are redundant. Sometimes, however, */ extern long atol(char * nptr) ; /* the declaration is in a header file */ #endif extern int chsize(int fildes, long size) ; /* not included in the compile. In that */ extern int close(int fildes) ; /* case, compile and/or run-time errors */ extern void exit(int status) ; /* will be avoided because of these */ extern int lock(int flag) ; /* declarations. */ extern int locking(int fildes, int mode, long size) ; extern void *malloc(size_t size) ; /* malloc(), calloc() and realloc() may */ extern void *calloc(size_t nelem, size_t size) ; /* return a 'char *' in some compilers. */ extern void *realloc(void * ptr, size_t size) ; /* if so, change 'void *' to 'char *' */ extern void free(void * ptr) ; extern long time(long * tloc) ; #ifdef S4NO_UNISTD extern int read(int fildes, char * buf, unsigned nbyte) ; extern int unlink(char * path) ; extern int write(int fildes, char * buf, unsigned nbyte) ; #endif #ifndef S4NO_ECVT extern char *ecvt(double value, int ndigit, int * decpt, int * sign) ; #ifndef S4NO_FCVT extern char *fcvt(double value, int ndigit, int * decpt, int * sign) ; #endif #endif #ifndef S4LSEEK extern long lseek(int fildes, long offset, int whence) ; #endif #ifndef S4MEMCMP extern int memcmp(const void * s1, const void * s2, size_t n) ; #endif #else long filelength(int) ; long MAClseek(int, long, int, int) ; #include #include #endif /* #define USHRT_MAX 0xFFFF */ /* may comment these out if compiler */ /* #define INT_MAX 0x7FFF */ /* error occurs */ /* #define UINT_MAX 0xFFFF */ #endif #ifdef S4LOCKF #define S4LOCKING int lockf(int fildes, int locking, long size); #endif #ifdef S4NO_STRNICMP int strnicmp(char *a, char *b, size_t n ); #endif #ifdef S4NO_MEMMOVE void *memmove(void *dest, void *src, size_t count ); #endif #ifdef S4LSEEK #define S4OFF_OPTIMIZE long f4seek() ; #endif #ifdef S4NO_FCVT char *f4fcvt( double value, int numdigits, int *dec_ptr, int *sign_ptr ); #endif #ifdef S4NO_ECVT char *f4ecvt( double value, int numdigits, int *dec_ptr, int *sign_ptr ); #endif #ifdef S4NO_ATOF double c4atof( char * buf ); #endif #ifdef S4BYTEORDER_3210 #define S4DO_BYTEORDER #endif #ifdef S4BYTEORDER_2301 #define S4DO_BYTEORDER #endif