/* Public domain */ /* * Main internal Agar-Core header file. External applications and libraries * should use instead. */ #ifdef _AGAR_INTERNAL #ifndef _AGAR_CORE_CORE_H_ #define _AGAR_CORE_CORE_H_ /* For [SU]intN types */ #include #include #include #include #include #include /* For threads types and use in inlines. */ #include /* For inline routines */ #include #ifdef _MK_HAVE_STDLIB_H #include #endif #include #ifdef _MK_HAVE_UNISTD_H #include #endif #include #include /* Define AG_BYTEORDER */ #define AG_BIG_ENDIAN 4321 #define AG_LITTLE_ENDIAN 1234 #include #include #if defined(_MK_BIG_ENDIAN) # define AG_BYTEORDER AG_BIG_ENDIAN #elif defined(_MK_LITTLE_ENDIAN) # define AG_BYTEORDER AG_LITTLE_ENDIAN #else # error "Byte order is unknown" #endif #undef _MK_BIG_ENDIAN #undef _MK_LITTLE_ENDIAN #include #include #include #include #include #include #include #include #ifndef MIN #define MIN(a,b) (((a)<(b))?(a):(b)) #endif #ifndef MAX #define MAX(a,b) (((a)>(b))?(a):(b)) #endif #ifndef MIN3 #define MIN3(a,b,c) MIN((a),MIN((b),(c))) #endif #ifndef MAX3 #define MAX3(a,b,c) MAX((a),MAX((b),(c))) #endif #ifdef _MSC_VER #pragma warning(disable: 4018) #pragma warning(disable: 4267) #pragma warning(disable: 4244) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif /* !_AGAR_CORE_CORE_H_ */ #endif /* _AGAR_INTERNAL */