]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/back-bdb.h
Merge remote-tracking branch 'origin/mdb.master'
[openldap] / servers / slapd / back-bdb / back-bdb.h
index 6493a4583c96d75d380fb6cd3cd25fe4a0074035..096b8082a5ab1cdc966962e13864337fa092ebc0 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2000-2008 The OpenLDAP Foundation.
+ * Copyright 2000-2012 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -54,10 +54,6 @@ LDAP_BEGIN_DECL
 #define        BDB_ID2ENTRY_PAGESIZE   16384
 #endif
 
-#ifndef BDB_PAGESIZE
-#define        BDB_PAGESIZE    4096    /* BDB's original default */
-#endif
-
 #define DEFAULT_CACHE_SIZE     1000
 
 /* The default search IDL stack cache depth */
@@ -129,12 +125,12 @@ typedef struct bdb_cache {
        EntryInfo       *c_lruhead;     /* lru - add accessed entries here */
        EntryInfo       *c_lrutail;     /* lru - rem lru entries from here */
        EntryInfo       c_dntree;
-       unsigned        c_maxsize;
-       int             c_cursize;
-       unsigned        c_minfree;
-       unsigned        c_eimax;
-       int             c_eiused;       /* EntryInfo's in use */
-       int             c_leaves;       /* EntryInfo leaf nodes */
+       ID              c_maxsize;
+       ID              c_cursize;
+       ID              c_minfree;
+       ID              c_eimax;
+       ID              c_eiused;       /* EntryInfo's in use */
+       ID              c_leaves;       /* EntryInfo leaf nodes */
        int             c_purging;
        DB_TXN  *c_txn; /* used by lru cleaner */
        ldap_pvt_thread_rdwr_t c_rwlock;
@@ -156,6 +152,12 @@ struct bdb_db_info {
        DB                      *bdi_db;
 };
 
+struct bdb_db_pgsize {
+       struct bdb_db_pgsize *bdp_next;
+       struct berval   bdp_name;
+       int     bdp_size;
+};
+
 #ifdef LDAP_DEVEL
 #define BDB_MONITOR_IDX
 #endif /* LDAP_DEVEL */
@@ -178,9 +180,10 @@ struct bdb_info {
        int                     bi_dbenv_mode;
 
        int                     bi_ndatabases;
+       int             bi_db_opflags;  /* db-specific flags */
        struct bdb_db_info **bi_databases;
        ldap_pvt_thread_mutex_t bi_database_mutex;
-       int             bi_db_opflags;  /* db-specific flags */
+       struct bdb_db_pgsize *bi_pagesizes;
 
        slap_mask_t     bi_defaultmask;
        Cache           bi_cache;
@@ -196,13 +199,13 @@ struct bdb_info {
        struct re_s             *bi_txn_cp_task;
        struct re_s             *bi_index_task;
 
-       int                     bi_lock_detect;
+       u_int32_t               bi_lock_detect;
        long            bi_shm_key;
 
        ID                      bi_lastid;
        ldap_pvt_thread_mutex_t bi_lastid_mutex;
-       unsigned        bi_idl_cache_max_size;
-       int             bi_idl_cache_size;
+       ID      bi_idl_cache_max_size;
+       ID              bi_idl_cache_size;
        Avlnode         *bi_idl_tree;
        bdb_idl_cache_entry_t   *bi_idl_lru_head;
        bdb_idl_cache_entry_t   *bi_idl_lru_tail;
@@ -226,6 +229,7 @@ struct bdb_info {
 #define        BDB_UPD_CONFIG  0x04
 #define        BDB_DEL_INDEX   0x08
 #define        BDB_RE_OPEN             0x10
+#define BDB_CHKSUM             0x20
 #ifdef BDB_HIER
        int             bi_modrdns;             /* number of modrdns completed */
        ldap_pvt_thread_mutex_t bi_modrdns_mutex;