aboutsummaryrefslogtreecommitdiff
path: root/external/db_drivers/liblmdb/midl.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--external/db_drivers/liblmdb/midl.h (renamed from external/db_drivers/liblmdb32/midl.h)26
1 files changed, 22 insertions, 4 deletions
diff --git a/external/db_drivers/liblmdb32/midl.h b/external/db_drivers/liblmdb/midl.h
index 1e5fee797..ed1d75e36 100644
--- a/external/db_drivers/liblmdb32/midl.h
+++ b/external/db_drivers/liblmdb/midl.h
@@ -27,6 +27,7 @@
#define _MDB_MIDL_H_
#include <stddef.h>
+#include <inttypes.h>
#ifdef __cplusplus
extern "C" {
@@ -42,7 +43,11 @@ extern "C" {
/** A generic unsigned ID number. These were entryIDs in back-bdb.
* Preferably it should have the same size as a pointer.
*/
+#ifdef MDB_VL32
+typedef uint64_t MDB_ID;
+#else
typedef size_t MDB_ID;
+#endif
/** An IDL is an ID List, a sorted array of IDs. The first
* element of the array is a counter for how many actual
@@ -55,10 +60,10 @@ typedef MDB_ID *MDB_IDL;
/* IDL sizes - likely should be even bigger
* limiting factors: sizeof(ID), thread stack size
*/
-#ifdef VL32
+#ifdef MDB_VL32
#define MDB_IDL_LOGN 10 /* DB_SIZE is 2^10, UM_SIZE is 2^11 */
#else
- #define MDB_IDL_LOGN 16 /* DB_SIZE is 2^16, UM_SIZE is 2^17 */
+#define MDB_IDL_LOGN 16 /* DB_SIZE is 2^16, UM_SIZE is 2^17 */
#endif
#define MDB_IDL_DB_SIZE (1<<MDB_IDL_LOGN)
#define MDB_IDL_UM_SIZE (1<<(MDB_IDL_LOGN+1))
@@ -102,9 +107,8 @@ void mdb_midl_free(MDB_IDL ids);
/** Shrink an IDL.
* Return the IDL to the default size if it has grown larger.
* @param[in,out] idp Address of the IDL to shrink.
- * @return 0 on no change, non-zero if shrunk.
*/
-int mdb_midl_shrink(MDB_IDL *idp);
+void mdb_midl_shrink(MDB_IDL *idp);
/** Make room for num additional elements in an IDL.
* @param[in,out] idp Address of the IDL.
@@ -182,6 +186,20 @@ int mdb_mid2l_insert( MDB_ID2L ids, MDB_ID2 *id );
*/
int mdb_mid2l_append( MDB_ID2L ids, MDB_ID2 *id );
+#ifdef MDB_VL32
+typedef struct MDB_ID3 {
+ MDB_ID mid; /**< The ID */
+ void *mptr; /**< The pointer */
+ unsigned int mcnt; /**< Number of pages */
+ unsigned int mref; /**< Refcounter */
+} MDB_ID3;
+
+typedef MDB_ID3 *MDB_ID3L;
+
+unsigned mdb_mid3l_search( MDB_ID3L ids, MDB_ID id );
+int mdb_mid3l_insert( MDB_ID3L ids, MDB_ID3 *id );
+
+#endif /* MDB_VL32 */
/** @} */
/** @} */
#ifdef __cplusplus