X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fplatform.h;fp=src%2Flock.h;h=26c3abfbb820d8bf999e7999b8214a7523c1689c;hp=85d32a5cbb0432753b500dd33e2f989f63ec8a35;hb=b356e0fae3b78e39af2ae8aca6ca6197e8669819;hpb=06f33ff1ee0c0e8345cb6d5b84ce5db9f043203d diff --git a/src/lock.h b/src/platform.h similarity index 68% rename from src/lock.h rename to src/platform.h index 85d32a5c..26c3abfb 100644 --- a/src/lock.h +++ b/src/platform.h @@ -17,13 +17,40 @@ along with this program. If not, see . */ -#if !defined(LOCK_H_INCLUDED) -#define LOCK_H_INCLUDED +#if !defined(PLATFORM_H_INCLUDED) +#define PLATFORM_H_INCLUDED -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(_MSC_VER) -# include +// Disable some silly and noisy warning from MSVC compiler +#pragma warning(disable: 4127) // Conditional expression is constant +#pragma warning(disable: 4146) // Unary minus operator applied to unsigned type +#pragma warning(disable: 4800) // Forcing value to bool 'true' or 'false' +#pragma warning(disable: 4996) // Function _ftime() may be unsafe + +// MSVC does not support +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; + +#else +# include +#endif + +#if !defined(_WIN32) && !defined(_WIN64) // Linux - Unix +# include +typedef timeval sys_time_t; + +inline void system_time(sys_time_t* t) { gettimeofday(t, NULL); } +inline uint64_t time_to_msec(const sys_time_t& t) { return t.tv_sec * 1000LL + t.tv_usec / 1000; } + +# include typedef pthread_mutex_t Lock; typedef pthread_cond_t WaitCondition; typedef pthread_t ThreadHandle; @@ -41,7 +68,13 @@ typedef void*(*start_fn)(void*); # define thread_create(x,f,id) !pthread_create(&(x),NULL,(start_fn)f,&(id)) # define thread_join(x) pthread_join(x, NULL) -#else +#else // Windows and MinGW + +# include +typedef _timeb sys_time_t; + +inline void system_time(sys_time_t* t) { _ftime(t); } +inline uint64_t time_to_msec(const sys_time_t& t) { return t.time * 1000LL + t.millitm; } #if !defined(NOMINMAX) # define NOMINMAX // disable macros min() and max() @@ -73,4 +106,4 @@ typedef HANDLE ThreadHandle; #endif -#endif // !defined(LOCK_H_INCLUDED) +#endif // !defined(PLATFORM_H_INCLUDED)