#define CACHE_ENTRY_LOADING 0x10
#define CACHE_ENTRY_WALKING 0x20
#define CACHE_ENTRY_ONELEVEL 0x40
+#define CACHE_ENTRY_REFERENCED 0x80
/*
* remaining fields require backend cache lock to access
/* for the in-core cache of entries */
typedef struct bdb_cache {
- int c_maxsize;
- int c_cursize;
+ int c_maxsize;
+ int c_cursize;
int c_minfree;
int c_eiused; /* EntryInfo's in use */
int c_leaves; /* EntryInfo leaf nodes */
+ u_int32_t c_locker; /* used by lru cleaner */
EntryInfo c_dntree;
EntryInfo *c_eifree; /* free list */
- Avlnode *c_idtree;
+ Avlnode *c_idtree;
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_head_mutex;
ldap_pvt_thread_mutex_t lru_tail_mutex;
- u_int32_t c_locker; /* used by lru cleaner */
+ ldap_pvt_thread_mutex_t c_count_mutex;
+ ldap_pvt_thread_mutex_t c_eifree_mutex;
#ifdef SLAP_ZONE_ALLOC
void *c_zctx;
#endif
#endif
+#ifndef DB_BUFFER_SMALL
+#define DB_BUFFER_SMALL ENOMEM
+#endif
+
#define BDB_REUSE_LOCKERS
#define BDB_CSN_COMMIT 0