#ifndef CS_COMMON_PLATFORMS_PLATFORM_UNIX_H_ #define CS_COMMON_PLATFORMS_PLATFORM_UNIX_H_ #if CS_PLATFORM == CS_P_UNIX #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* wants this for C++ */ #ifndef __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS #endif /* C++ wants that for INT64_MAX */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS #endif /* Enable fseeko() and ftello() functions */ #ifndef _LARGEFILE_SOURCE #define _LARGEFILE_SOURCE #endif /* Enable 64-bit file offsets */ #ifndef _FILE_OFFSET_BITS #define _FILE_OFFSET_BITS 64 #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __APPLE__ #include #ifndef BYTE_ORDER #define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN #define BIG_ENDIAN __DARWIN_BIG_ENDIAN #define PDP_ENDIAN __DARWIN_PDP_ENDIAN #define BYTE_ORDER __DARWIN_BYTE_ORDER #endif #endif /* * osx correctly avoids defining strtoll when compiling in strict ansi mode. * c++ 11 standard defines strtoll as well. * We require strtoll, and if your embedded pre-c99 compiler lacks one, please * implement a shim. */ #if !(defined(__cplusplus) && __cplusplus >= 201103L) && \ !(defined(__DARWIN_C_LEVEL) && __DARWIN_C_LEVEL >= 200809L) long long strtoll(const char *, char **, int); #endif typedef int sock_t; #define INVALID_SOCKET (-1) #define SIZE_T_FMT "zu" typedef struct stat cs_stat_t; #define DIRSEP '/' #define to64(x) strtoll(x, NULL, 10) #define INT64_FMT PRId64 #define INT64_X_FMT PRIx64 #ifndef __cdecl #define __cdecl #endif #ifndef va_copy #ifdef __va_copy #define va_copy __va_copy #else #define va_copy(x, y) (x) = (y) #endif #endif #define closesocket(x) close(x) #ifndef MG_MAX_HTTP_REQUEST_SIZE #define MG_MAX_HTTP_REQUEST_SIZE 8192 #endif #ifndef MG_MAX_HTTP_SEND_MBUF #define MG_MAX_HTTP_SEND_MBUF 4096 #endif #ifndef MG_MAX_HTTP_HEADERS #define MG_MAX_HTTP_HEADERS 40 #endif #ifndef CS_ENABLE_STDIO #define CS_ENABLE_STDIO 1 #endif #ifndef MG_ENABLE_BROADCAST #define MG_ENABLE_BROADCAST 1 #endif #ifndef MG_ENABLE_DIRECTORY_LISTING #define MG_ENABLE_DIRECTORY_LISTING 1 #endif #ifndef MG_ENABLE_FILESYSTEM #define MG_ENABLE_FILESYSTEM 1 #endif #ifndef MG_ENABLE_HTTP_CGI #define MG_ENABLE_HTTP_CGI MG_ENABLE_FILESYSTEM #endif #ifndef MG_NET_IF #define MG_NET_IF MG_NET_IF_SOCKET #endif #ifndef MG_HOSTS_FILE_NAME #define MG_HOSTS_FILE_NAME "/etc/hosts" #endif #ifndef MG_RESOLV_CONF_FILE_NAME #define MG_RESOLV_CONF_FILE_NAME "/etc/resolv.conf" #endif #endif /* CS_PLATFORM == CS_P_UNIX */ #endif /* CS_COMMON_PLATFORMS_PLATFORM_UNIX_H_ */