mirror of
https://github.com/isar/libmdbx.git
synced 2025-08-20 07:49:27 +08:00
mdbx-doc: more for Doxygen (refs, build options).
Change-Id: I8b15bce3d6638a24bdafa3171ae10f01311862d7
This commit is contained in:
@@ -13,21 +13,51 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* Support for huge write-transactions */
|
||||
/** \defgroup build_option Build options
|
||||
* The libmdbx build options.
|
||||
@{ */
|
||||
|
||||
#ifdef DOXYGEN
|
||||
/* !!! Actually this is a fake definitions !!!
|
||||
* !!! for documentation generation by Doxygen !!! */
|
||||
|
||||
/** Controls enabling of debugging features.
|
||||
*
|
||||
* - `MDBX_DEBUG = 0` (by default) Disables any debugging features at all,
|
||||
* including logging and assertion controls.
|
||||
* Logging level and corresponding debug flags changing
|
||||
* by \ref mdbx_setup_debug() will not have effect.
|
||||
* - `MDBX_DEBUG > 0` Enables code for the debugging features (logging,
|
||||
* assertions checking and internal audit).
|
||||
* Simultaneously sets the default logging level
|
||||
* to the `MDBX_DEBUG` value.
|
||||
* Also enables \ref MDBX_DBG_AUDIT if `MDBX_DEBUG >= 2`.
|
||||
*
|
||||
* \ingroup build_option */
|
||||
#define MDBX_DEBUG 0...7
|
||||
|
||||
/** Disables using of GNU libc extensions. */
|
||||
#define MDBX_DISABLE_GNU_SOURCE 0 or 1
|
||||
|
||||
#endif /* DOXYGEN */
|
||||
|
||||
/** Enables support for huge write-transactions */
|
||||
#ifndef MDBX_HUGE_TRANSACTIONS
|
||||
#define MDBX_HUGE_TRANSACTIONS 0
|
||||
#endif /* MDBX_HUGE_TRANSACTIONS */
|
||||
|
||||
/* using fcntl(F_FULLFSYNC) with 5-10 times slowdown */
|
||||
/** Using fcntl(F_FULLFSYNC) with 5-10 times slowdown */
|
||||
#define MDBX_OSX_WANNA_DURABILITY 0
|
||||
/* using fsync() with chance of data lost on power failure */
|
||||
/** Using fsync() with chance of data lost on power failure */
|
||||
#define MDBX_OSX_WANNA_SPEED 1
|
||||
|
||||
#ifndef MDBX_OSX_SPEED_INSTEADOF_DURABILITY
|
||||
/** Choices \ref MDBX_OSX_WANNA_DURABILITY or \ref MDBX_OSX_WANNA_SPEED
|
||||
* for OSX & iOS */
|
||||
#define MDBX_OSX_SPEED_INSTEADOF_DURABILITY MDBX_OSX_WANNA_DURABILITY
|
||||
#endif /* MDBX_OSX_SPEED_INSTEADOF_DURABILITY */
|
||||
|
||||
/* Controls checking PID against reuse DB environment after the fork() */
|
||||
/** Controls checking PID against reuse DB environment after the fork() */
|
||||
#ifndef MDBX_TXN_CHECKPID
|
||||
#if defined(MADV_DONTFORK) || defined(_WIN32) || defined(_WIN64)
|
||||
/* PID check could be ommited:
|
||||
@@ -43,7 +73,7 @@
|
||||
#define MDBX_TXN_CHECKPID_CONFIG STRINGIFY(MDBX_TXN_CHECKPID)
|
||||
#endif /* MDBX_TXN_CHECKPID */
|
||||
|
||||
/* Controls checking transaction owner thread against misuse transactions from
|
||||
/** Controls checking transaction owner thread against misuse transactions from
|
||||
* other threads. */
|
||||
#ifndef MDBX_TXN_CHECKOWNER
|
||||
#define MDBX_TXN_CHECKOWNER 1
|
||||
@@ -52,7 +82,7 @@
|
||||
#define MDBX_TXN_CHECKOWNER_CONFIG STRINGIFY(MDBX_TXN_CHECKOWNER)
|
||||
#endif /* MDBX_TXN_CHECKOWNER */
|
||||
|
||||
/* Does a system have battery-backed Real-Time Clock or just a fake. */
|
||||
/** Does a system have battery-backed Real-Time Clock or just a fake. */
|
||||
#ifndef MDBX_TRUST_RTC
|
||||
#if defined(__linux__) || defined(__gnu_linux__) || defined(__NetBSD__) || \
|
||||
defined(__OpenBSD__)
|
||||
@@ -67,13 +97,25 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#define MDBX_LOCKING_WIN32FILES -1 /* Win32 File Locking API */
|
||||
#define MDBX_LOCKING_SYSV 5 /* SystemV IPC semaphores */
|
||||
#define MDBX_LOCKING_POSIX1988 1988 /* POSIX-1 Shared anonymous semaphores */
|
||||
#define MDBX_LOCKING_POSIX2001 2001 /* POSIX-2001 Shared Mutexes */
|
||||
#define MDBX_LOCKING_POSIX2008 2008 /* POSIX-2008 Robust Mutexes */
|
||||
#define MDBX_LOCKING_BENAPHORE 1995 /* BeOS Benaphores, aka Futexes */
|
||||
/** Win32 File Locking API for \ref MDBX_LOCKING */
|
||||
#define MDBX_LOCKING_WIN32FILES -1
|
||||
|
||||
/** SystemV IPC semaphores for \ref MDBX_LOCKING */
|
||||
#define MDBX_LOCKING_SYSV 5
|
||||
|
||||
/** POSIX-1 Shared anonymous semaphores for \ref MDBX_LOCKING */
|
||||
#define MDBX_LOCKING_POSIX1988 1988
|
||||
|
||||
/** POSIX-2001 Shared Mutexes for \ref MDBX_LOCKING */
|
||||
#define MDBX_LOCKING_POSIX2001 2001
|
||||
|
||||
/** POSIX-2008 Robust Mutexes for \ref MDBX_LOCKING */
|
||||
#define MDBX_LOCKING_POSIX2008 2008
|
||||
|
||||
/** BeOS Benaphores, aka Futexes for \ref MDBX_LOCKING */
|
||||
#define MDBX_LOCKING_BENAPHORE 1995
|
||||
|
||||
/** Advanced: Choices the locking implementation (autodetection by default). */
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
#define MDBX_LOCKING MDBX_LOCKING_WIN32FILES
|
||||
#else
|
||||
@@ -106,6 +148,7 @@
|
||||
#endif /* MDBX_LOCKING */
|
||||
#endif /* !Windows */
|
||||
|
||||
/** Advanced: Using POSIX OFD-locks (autodetection by default). */
|
||||
#ifndef MDBX_USE_OFDLOCKS
|
||||
#if defined(F_OFD_SETLK) && defined(F_OFD_SETLKW) && defined(F_OFD_GETLK) && \
|
||||
!defined(MDBX_SAFE4QEMU) && \
|
||||
@@ -123,7 +166,7 @@
|
||||
|
||||
#ifndef MDBX_CPU_WRITEBACK_INCOHERENT
|
||||
#if defined(__ia32__) || defined(__e2k__) || defined(__hppa) || \
|
||||
defined(__hppa__)
|
||||
defined(__hppa__) || defined(DOXYGEN)
|
||||
#define MDBX_CPU_WRITEBACK_INCOHERENT 0
|
||||
#else
|
||||
#define MDBX_CPU_WRITEBACK_INCOHERENT 1
|
||||
@@ -151,7 +194,7 @@
|
||||
#endif /* MDBX_MMAP_INCOHERENT_CPU_CACHE */
|
||||
|
||||
#ifndef MDBX_64BIT_ATOMIC
|
||||
#if MDBX_WORDBITS >= 64
|
||||
#if MDBX_WORDBITS >= 64 || defined(DOXYGEN)
|
||||
#define MDBX_64BIT_ATOMIC 1
|
||||
#else
|
||||
#define MDBX_64BIT_ATOMIC 0
|
||||
@@ -180,7 +223,7 @@
|
||||
#else
|
||||
#define MDBX_64BIT_CAS 0
|
||||
#endif
|
||||
#elif defined(_MSC_VER) || defined(__APPLE__)
|
||||
#elif defined(_MSC_VER) || defined(__APPLE__) || defined(DOXYGEN)
|
||||
#define MDBX_64BIT_CAS 1
|
||||
#else
|
||||
#define MDBX_64BIT_CAS MDBX_64BIT_ATOMIC
|
||||
@@ -213,6 +256,7 @@
|
||||
#endif
|
||||
#endif /* MDBX_CACHELINE_SIZE */
|
||||
|
||||
/** @} end of build options */
|
||||
/*******************************************************************************
|
||||
*******************************************************************************
|
||||
******************************************************************************/
|
||||
|
Reference in New Issue
Block a user