]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/back-bdb.h
Added bdb_attribute and bdb_group ACL support routines
[openldap] / servers / slapd / back-bdb / back-bdb.h
index 5003574b93e045eded3b450d8a35d9141a4e0f26..79b45ec0c96cb729ade5a17b5fc5230ce9b2fd01 100644 (file)
@@ -1,7 +1,7 @@
-/* back-bdb.h - ldap ldbm back-end header file */
+/* back-bdb.h - bdb back-end header file */
 /* $OpenLDAP$ */
 /*
- * Copyright 2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 2000-2001 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
 
 LDAP_BEGIN_DECL
 
-#define BDB_IDL_SIZE   (1<<16)
-#define BDB_IDL_MAX            (BDB_IDL_SIZE-32)
-/* #define BDB_IDL_ALLOC       (BDB_IDL_SIZE * sizeof(ID)) */
-
-#define BDB_IS_ALLIDS(ids)     ((ids)[0] == NOID)
+/* #define BDB_FILTER_INDICES 1 */
+/* #define SLAPD_USE_AD 1 */
 
 #define DN_BASE_PREFIX         SLAP_INDEX_EQUALITY_PREFIX
 #define DN_ONE_PREFIX          '%'
@@ -37,16 +34,22 @@ LDAP_BEGIN_DECL
 
 #define BDB_DBENV_HOME LDAP_RUNDIR LDAP_DIRSEP "openldap-bdb"
 
+#ifdef BDB_SUBDIRS
 #define BDB_TMP_SUBDIR LDAP_DIRSEP "tmp"
 #define BDB_LG_SUBDIR  LDAP_DIRSEP "log"
 #define BDB_DATA_SUBDIR        LDAP_DIRSEP "data"
+#endif
 
+#define BDB_SUFFIX             ".bdb"
 #define BDB_NEXTID             0
-#define BDB_DN2ID              1
-#define BDB_ID2ENTRY   2
-#define BDB_INDICES            3
+#define BDB_ID2ENTRY   1
+#define BDB_DN2ID              2
+#define BDB_NDB                        3
+
+#define BDB_INDICES            128
 
 struct bdb_db_info {
+       char            *bdi_name;
        DB                      *bdi_db;
 };
 
@@ -61,11 +64,34 @@ struct bdb_info {
 
        int                     bi_ndatabases;
        struct bdb_db_info **bi_databases;
+       ldap_pvt_thread_mutex_t bi_database_mutex;
+
+       slap_mask_t     bi_defaultmask;
+       Avlnode         *bi_attrs;
+
+       int                     bi_txn_cp;
+       u_int32_t       bi_txn_cp_min;
+       u_int32_t       bi_txn_cp_kbyte;
+
+#ifndef NO_THREADS
+       int                     bi_lock_detect;
+       int                     bi_lock_detect_seconds;
+       ldap_pvt_thread_t       bi_lock_detect_tid;
+#endif
+
+       ID                      bi_lastid;
 };
+
 #define bi_nextid      bi_databases[BDB_NEXTID]
 #define bi_id2entry    bi_databases[BDB_ID2ENTRY]
 #define bi_dn2id       bi_databases[BDB_DN2ID]
 
+struct bdb_op_info {
+       BackendDB*      boi_bdb;
+       DB_TXN*         boi_txn;
+       int                     boi_err;
+};
+
 LDAP_END_DECL
 
 #include "proto-bdb.h"