--- ray/src/common/platform.h 2016/03/06 01:13:17 3.12 +++ ray/src/common/platform.h 2025/01/22 19:41:55 3.18 @@ -1,4 +1,4 @@ -/* RCSid $Id: platform.h,v 3.12 2016/03/06 01:13:17 schorsch Exp $ */ +/* RCSid $Id: platform.h,v 3.18 2025/01/22 19:41:55 greg Exp $ */ /* * platform.h - header file for platform specific definitions */ @@ -10,25 +10,47 @@ #include /* _setmode() and stuff from unistd.h */ #include typedef long off_t; + #undef ftello + #define ftello _ftelli64 + #undef fseeko + #define fseeko _fseeki64 + #undef fdopen #define fdopen _fdopen + #undef read #define read _read + #undef open #define open _open + #undef close #define close _close + #undef write #define write _write + #undef ftruncate #define ftruncate _chsize_s + #undef unlink #define unlink _unlink + #undef fileno #define fileno _fileno + #undef snprintf #define snprintf _snprintf + #undef vsnprintf #define vsnprintf _vsnprintf /* XXX should we check first if size_t is 32 bit? */ + #undef fseeko #define fseeko _fseeki64 + #undef lseek #define lseek _lseek + #undef access #define access _access + #undef mktemp #define mktemp _mktemp + #define fpurge(s) #include + #undef strcasecmp #define strcasecmp _stricmp + #undef strncasecmp #define strncasecmp _strnicmp + #undef strdup #define strdup _strdup #include @@ -45,7 +67,7 @@ #undef rad8 #undef rad9 #endif - #define sleep(s) Sleep(s*1000) + #define sleep(s) Sleep((DWORD)((s)*1000)) #define NON_POSIX @@ -57,12 +79,15 @@ #include /* _O_BINARY, _O_TEXT */ #include /* _fmode */ - #define SET_DEFAULT_BINARY() _fmode = _O_BINARY + #define SET_DEFAULT_BINARY() (_fmode = _O_BINARY) + #define SET_DEFAULT_TEXT() (_fmode = _O_TEXT) #define SET_FILE_BINARY(fp) _setmode(_fileno(fp),_O_BINARY) + #define SET_FILE_TEXT(fp) _setmode(_fileno(fp),_O_TEXT) #define SET_FD_BINARY(fd) _setmode(fd,_O_BINARY) + #define SET_FD_TEXT(fd) _setmode(fd,_O_TEXT) #define putenv _putenv -#else /* _WIN32 || _WIN64 */ +#else /* ! (_WIN32 || _WIN64) */ #ifdef AMIGA #define NON_POSIX @@ -73,12 +98,19 @@ #define RHAS_FORK_EXEC #endif + #ifdef __linux__ + #include + #define fpurge __fpurge + #endif /* everybody except Windows */ /* NOPs */ #define SET_DEFAULT_BINARY() #define SET_FILE_BINARY(fp) #define SET_FD_BINARY(fd) + #define SET_DEFAULT_TEXT() + #define SET_FILE_TEXT(fp) + #define SET_FD_TEXT(fd) #endif /* _WIN32 || _WIN64 */ @@ -86,7 +118,11 @@ extern "C" { #endif -/* nothing to protect yet */ +#if defined(_WIN32) || defined(_WIN64) + +extern int usleep(__int64 usec); + +#endif /* _WIN32 || _WIN64 */ #ifdef __cplusplus }