/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2005 The OpenLDAP Foundation.
+ * Copyright 2000-2006 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
typedef struct bdb_cache {
int c_maxsize;
int c_cursize;
+ int c_minfree;
int c_eiused; /* EntryInfo's in use */
int c_leaves; /* EntryInfo leaf nodes */
EntryInfo c_dntree;
EntryInfo *c_lruhead; /* lru - add accessed entries here */
EntryInfo *c_lrutail; /* lru - rem lru entries from here */
ldap_pvt_thread_rdwr_t c_rwlock;
- ldap_pvt_thread_mutex_t lru_mutex;
+ ldap_pvt_thread_mutex_t lru_head_mutex;
+ ldap_pvt_thread_mutex_t lru_tail_mutex;
u_int32_t c_locker; /* used by lru cleaner */
#ifdef SLAP_ZONE_ALLOC
void *c_zctx;
DB *bdi_db;
};
+typedef struct bdb_monitor_t {
+ void *bdm_cb;
+ struct berval bdm_nbase;
+ int bdm_scope;
+ struct berval bdm_filter;
+} bdb_monitor_t;
+
+/* From ldap_rq.h */
+struct re_s;
+
struct bdb_info {
DB_ENV *bi_dbenv;
int bi_txn_cp;
u_int32_t bi_txn_cp_min;
u_int32_t bi_txn_cp_kbyte;
- void *bi_txn_cp_task;
- void *bi_index_task;
+ struct re_s *bi_txn_cp_task;
+ struct re_s *bi_index_task;
int bi_lock_detect;
long bi_shm_key;
alock_info_t bi_alock_info;
char *bi_db_config_path;
BerVarray bi_db_config;
+ bdb_monitor_t bi_monitor;
int bi_flags;
#define BDB_IS_OPEN 0x01
#define BDB_HAS_CONFIG 0x02