#ifndef _AL_TYPES_H #define _AL_TYPES_H // https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Integer-Const-Type.html // https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html // https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170 #ifdef _POSIX_C_SOURCE #if _POSIX_C_SOURCE < 200112L #error "libalabaster requires _POSIX_C_SOURCE >= 200112L" #endif #else #define _POSIX_C_SOURCE 200112L #endif #ifdef _XOPEN_SOURCE #if _XOPEN_SOURCE < 500 #error "libalabaster requires _XOPEN_SOURCE >= 500" #endif #else #define _XOPEN_SOURCE 500 #endif #ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS #include typedef SSIZE_T ssize_t; #endif #include #include #include #include #include #include // off_t typedef int8_t s8; typedef uint8_t u8; typedef int16_t s16; typedef uint16_t u16; typedef int32_t s32; typedef uint32_t u32; typedef int64_t s64; typedef uint64_t u64; typedef float f32; typedef double f64; // long can be a distinctly different size based on the toolchain we are using. // Use long and ulong, if needed, for API compatibility. typedef unsigned long ulong; typedef unsigned char uchar; #endif // _AL_TYPES_H