22#ifndef CRYPTOPP_CONFIG_OS_H
23#define CRYPTOPP_CONFIG_OS_H
32#if (defined(_MSC_VER) && defined(__clang__) && \
33 !(defined( __clang_analyzer__)) && !defined(__INTEL_LLVM_COMPILER))
34# error: "Unsupported configuration"
38#if defined(_WIN32) || defined(_WIN64) || defined(__CYGWIN__)
39#define CRYPTOPP_WIN32_AVAILABLE
43#if defined(__unix__) || defined(__MACH__) || defined(__NetBSD__) || defined(__sun)
44#define CRYPTOPP_UNIX_AVAILABLE
48#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
49#define CRYPTOPP_BSD_AVAILABLE
53#if defined(_MSC_VER) || defined(__fastcall)
54 #define CRYPTOPP_FASTCALL __fastcall
56 #define CRYPTOPP_FASTCALL
61 #define CRYPTOPP_NO_VTABLE __declspec(novtable)
63 #define CRYPTOPP_NO_VTABLE
84#if !defined(USE_MS_CRYPTOAPI) && !defined(USE_MS_CNGAPI)
85# if !defined(_USING_V110_SDK71_) && ((WINVER >= 0x0602 ) || \
86 (_WIN32_WINNT >= 0x0602 ))
89# define USE_MS_CRYPTOAPI
94#ifndef NO_OS_DEPENDENCE
103#ifndef CRYPTOPP_INIT_PRIORITY
104# define CRYPTOPP_INIT_PRIORITY 250
110#ifndef CRYPTOPP_USER_PRIORITY
111# define CRYPTOPP_USER_PRIORITY (CRYPTOPP_INIT_PRIORITY+101)
115#if (CRYPTOPP_INIT_PRIORITY > 0) && !(defined(NO_OS_DEPENDENCE) || defined(__APPLE__) || defined(__sun__))
116# if (CRYPTOPP_GCC_VERSION >= 30000) || (CRYPTOPP_LLVM_CLANG_VERSION >= 20900) || (_INTEL_COMPILER >= 800)
117# define HAVE_GCC_INIT_PRIORITY 1
118# elif (CRYPTOPP_MSC_VERSION >= 1310)
119# define HAVE_MSC_INIT_PRIORITY 1
120# elif defined(__xlc__) || defined(__xlC__) || defined(__ibmxl__)
121# define HAVE_XLC_INIT_PRIORITY 1
125#if defined(CRYPTOPP_WIN32_AVAILABLE) || defined(CRYPTOPP_UNIX_AVAILABLE)
126# define HIGHRES_TIMER_AVAILABLE
129#ifdef CRYPTOPP_WIN32_AVAILABLE
130# if !defined(WINAPI_FAMILY)
131# define THREAD_TIMER_AVAILABLE
132# elif defined(WINAPI_FAMILY)
133# if (WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP))
134# define THREAD_TIMER_AVAILABLE
139#if defined(CRYPTOPP_UNIX_AVAILABLE) || defined(CRYPTOPP_DOXYGEN_PROCESSING)
140# define NONBLOCKING_RNG_AVAILABLE
141# define BLOCKING_RNG_AVAILABLE
142# define OS_RNG_AVAILABLE
146#if defined(CRYPTOPP_UNIX_AVAILABLE)
147# define UNIX_SIGNALS_AVAILABLE 1
150#ifdef CRYPTOPP_WIN32_AVAILABLE
151# if !defined(WINAPI_FAMILY)
152# define NONBLOCKING_RNG_AVAILABLE
153# define OS_RNG_AVAILABLE
154# elif defined(WINAPI_FAMILY)
155# if (WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP))
156# define NONBLOCKING_RNG_AVAILABLE
157# define OS_RNG_AVAILABLE
158# elif !(WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP))
159# if ((WINVER >= 0x0A00 ) || (_WIN32_WINNT >= 0x0A00 ))
160# define NONBLOCKING_RNG_AVAILABLE
161# define OS_RNG_AVAILABLE
Library configuration file.