X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fback-bdb%2Fproto-bdb.h;h=f0070775d25cd27d3d720e15f2eb446e2a32832a;hb=8f02c3f57578f6e35e89fcf73574c34108b41195;hp=4b547dce703ed685f706805af9b6f59afcb41897;hpb=a59e6bd45ed7a17389ded2486888556dc82f3a12;p=openldap diff --git a/servers/slapd/back-bdb/proto-bdb.h b/servers/slapd/back-bdb/proto-bdb.h index 4b547dce70..f0070775d2 100644 --- a/servers/slapd/back-bdb/proto-bdb.h +++ b/servers/slapd/back-bdb/proto-bdb.h @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2000-2007 The OpenLDAP Foundation. + * Copyright 2000-2011 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -45,11 +45,11 @@ AttrInfo *bdb_attr_mask( struct bdb_info *bdb, void bdb_attr_flush( struct bdb_info *bdb ); int bdb_attr_slot( struct bdb_info *bdb, - AttributeDescription *desc, unsigned *insert ); + AttributeDescription *desc, int *insert ); int bdb_attr_index_config LDAP_P(( struct bdb_info *bdb, const char *fname, int lineno, - int argc, char **argv )); + int argc, char **argv, struct config_reply_s *cr )); void bdb_attr_index_unparse LDAP_P(( struct bdb_info *bdb, BerVarray *bva )); void bdb_attr_index_destroy LDAP_P(( struct bdb_info *bdb )); @@ -70,13 +70,19 @@ int bdb_back_init_cf( BackendInfo *bi ); * dbcache.c */ #define bdb_db_cache BDB_SYMBOL(db_cache) +#define bdb_db_findsize BDB_SYMBOL(db_findsize) int bdb_db_cache( Backend *be, - const char *name, + struct berval *name, DB **db ); +int +bdb_db_findsize( + struct bdb_info *bdb, + struct berval *name ); + /* * dn2entry.c */ @@ -84,7 +90,7 @@ bdb_db_cache( int bdb_dn2entry LDAP_P(( Operation *op, DB_TXN *tid, struct berval *dn, EntryInfo **e, int matched, - BDB_LOCKER locker, DB_LOCK *lock )); + DB_LOCK *lock )); /* * dn2id.c @@ -97,9 +103,10 @@ int bdb_dn2entry LDAP_P(( Operation *op, DB_TXN *tid, int bdb_dn2id( Operation *op, - DB_TXN *tid, struct berval *dn, - EntryInfo *ei ); + EntryInfo *ei, + DB_TXN *txn, + DBC **cursor ); int bdb_dn2id_add( Operation *op, @@ -120,7 +127,7 @@ int bdb_dn2id_children( int bdb_dn2idl( Operation *op, - BDB_LOCKER locker, + DB_TXN *txn, struct berval *ndn, EntryInfo *ei, ID *ids, @@ -128,15 +135,20 @@ int bdb_dn2idl( #ifdef BDB_HIER #define bdb_dn2id_parent BDB_SYMBOL(dn2id_parent) +#define bdb_dup_compare BDB_SYMBOL(dup_compare) #define bdb_fix_dn BDB_SYMBOL(fix_dn) int bdb_dn2id_parent( Operation *op, DB_TXN *txn, - BDB_LOCKER locker, EntryInfo *ei, ID *idp ); +int bdb_dup_compare( + DB *db, + const DBT *usrkey, + const DBT *curkey ); + int bdb_fix_dn( Entry *e, int checkit ); #endif @@ -168,7 +180,7 @@ char *ebcdic_dberror( int rc ); int bdb_filter_candidates( Operation *op, - BDB_LOCKER locker, + DB_TXN *txn, Filter *f, ID *ids, ID *tmp, @@ -202,7 +214,6 @@ int bdb_id2entry_delete( int bdb_id2entry( BackendDB *be, DB_TXN *tid, - BDB_LOCKER locker, ID id, Entry **e); #endif @@ -285,7 +296,7 @@ unsigned bdb_idl_search( ID *ids, ID id ); int bdb_idl_fetch_key( BackendDB *be, DB *db, - BDB_LOCKER locker, + DB_TXN *txn, DBT *key, ID *ids, DBC **saved_cursor, @@ -328,17 +339,18 @@ int bdb_idl_append_one( ID *ids, ID id ); /* * index.c */ -#define bdb_index_is_indexed BDB_SYMBOL(index_is_indexed) +#define bdb_index_mask BDB_SYMBOL(index_mask) #define bdb_index_param BDB_SYMBOL(index_param) #define bdb_index_values BDB_SYMBOL(index_values) #define bdb_index_entry BDB_SYMBOL(index_entry) #define bdb_index_recset BDB_SYMBOL(index_recset) #define bdb_index_recrun BDB_SYMBOL(index_recrun) -extern int -bdb_index_is_indexed LDAP_P(( +extern AttrInfo * +bdb_index_mask LDAP_P(( Backend *be, - AttributeDescription *desc )); + AttributeDescription *desc, + struct berval *name )); extern int bdb_index_param LDAP_P(( @@ -391,7 +403,7 @@ extern int bdb_key_read( Backend *be, DB *db, - BDB_LOCKER locker, + DB_TXN *txn, struct berval *k, ID *ids, DBC **saved_cursor, @@ -412,7 +424,7 @@ bdb_key_change( #define bdb_next_id BDB_SYMBOL(next_id) #define bdb_last_id BDB_SYMBOL(last_id) -int bdb_next_id( BackendDB *be, DB_TXN *tid, ID *id ); +int bdb_next_id( BackendDB *be, ID *id ); int bdb_last_id( BackendDB *be, DB_TXN *tid ); /* @@ -489,13 +501,13 @@ void bdb_unlocked_cache_return_entry_rw( struct bdb_info *bdb, Entry *e, int rw #define bdb_cache_delete BDB_SYMBOL(cache_delete) #define bdb_cache_delete_cleanup BDB_SYMBOL(cache_delete_cleanup) #define bdb_cache_find_id BDB_SYMBOL(cache_find_id) -#define bdb_cache_find_info BDB_SYMBOL(cache_find_info) #define bdb_cache_find_ndn BDB_SYMBOL(cache_find_ndn) #define bdb_cache_find_parent BDB_SYMBOL(cache_find_parent) #define bdb_cache_modify BDB_SYMBOL(cache_modify) #define bdb_cache_modrdn BDB_SYMBOL(cache_modrdn) #define bdb_cache_release_all BDB_SYMBOL(cache_release_all) #define bdb_cache_delete_entry BDB_SYMBOL(cache_delete_entry) +#define bdb_cache_deref BDB_SYMBOL(cache_deref) int bdb_cache_children( Operation *op, @@ -507,7 +519,7 @@ int bdb_cache_add( EntryInfo *pei, Entry *e, struct berval *nrdn, - BDB_LOCKER locker, + DB_TXN *txn, DB_LOCK *lock ); int bdb_cache_modrdn( @@ -516,50 +528,46 @@ int bdb_cache_modrdn( struct berval *nrdn, Entry *new, EntryInfo *ein, - BDB_LOCKER locker, + DB_TXN *txn, DB_LOCK *lock ); int bdb_cache_modify( struct bdb_info *bdb, Entry *e, Attribute *newAttrs, - BDB_LOCKER locker, + DB_TXN *txn, DB_LOCK *lock ); int bdb_cache_find_ndn( Operation *op, - DB_TXN *txn, + DB_TXN *txn, struct berval *ndn, EntryInfo **res ); -EntryInfo * bdb_cache_find_info( - struct bdb_info *bdb, - ID id -); #define ID_LOCKED 1 #define ID_NOCACHE 2 +#define ID_NOENTRY 4 +#define ID_CHKPURGE 8 int bdb_cache_find_id( Operation *op, DB_TXN *tid, ID id, EntryInfo **eip, int flag, - BDB_LOCKER locker, DB_LOCK *lock ); int bdb_cache_find_parent( Operation *op, DB_TXN *txn, - BDB_LOCKER locker, ID id, EntryInfo **res ); int bdb_cache_delete( struct bdb_info *bdb, Entry *e, - BDB_LOCKER locker, + DB_TXN *txn, DB_LOCK *lock ); void bdb_cache_delete_cleanup( @@ -567,6 +575,7 @@ void bdb_cache_delete_cleanup( EntryInfo *ei ); void bdb_cache_release_all( Cache *cache ); +void bdb_cache_deref( EntryInfo *ei ); #ifdef BDB_HIER int hdb_cache_load( @@ -579,7 +588,7 @@ int hdb_cache_load( #define bdb_cache_entry_db_relock BDB_SYMBOL(cache_entry_db_relock) int bdb_cache_entry_db_relock( struct bdb_info *bdb, - BDB_LOCKER locker, + DB_TXN *txn, EntryInfo *ei, int rw, int tryOnly, @@ -589,22 +598,10 @@ int bdb_cache_entry_db_unlock( struct bdb_info *bdb, DB_LOCK *lock ); -#ifdef BDB_REUSE_LOCKERS - -#define bdb_locker_id BDB_SYMBOL(locker_id) -#define bdb_locker_flush BDB_SYMBOL(locker_flush) -int bdb_locker_id( Operation *op, DB_ENV *env, BDB_LOCKER *locker ); -void bdb_locker_flush( DB_ENV *env ); - -#define LOCK_ID_FREE(env, locker) ((void)0) -#define LOCK_ID(env, locker) bdb_locker_id(op, env, locker) - -#else - -#define LOCK_ID_FREE(env, locker) XLOCK_ID_FREE(env, locker) -#define LOCK_ID(env, locker) XLOCK_ID(env, locker) - -#endif +#define bdb_reader_get BDB_SYMBOL(reader_get) +#define bdb_reader_flush BDB_SYMBOL(reader_flush) +int bdb_reader_get( Operation *op, DB_ENV *env, DB_TXN **txn ); +void bdb_reader_flush( DB_ENV *env ); /* * trans.c @@ -633,6 +630,7 @@ bdb_trans_backoff( int num_retries ); #define bdb_hasSubordinates BDB_SYMBOL(hasSubordinates) #define bdb_tool_entry_open BDB_SYMBOL(tool_entry_open) #define bdb_tool_entry_close BDB_SYMBOL(tool_entry_close) +#define bdb_tool_entry_first_x BDB_SYMBOL(tool_entry_first_x) #define bdb_tool_entry_next BDB_SYMBOL(tool_entry_next) #define bdb_tool_entry_get BDB_SYMBOL(tool_entry_get) #define bdb_tool_entry_put BDB_SYMBOL(tool_entry_put) @@ -663,6 +661,7 @@ extern BI_has_subordinates bdb_hasSubordinates; /* tools.c */ extern BI_tool_entry_open bdb_tool_entry_open; extern BI_tool_entry_close bdb_tool_entry_close; +extern BI_tool_entry_first_x bdb_tool_entry_first_x; extern BI_tool_entry_next bdb_tool_entry_next; extern BI_tool_entry_get bdb_tool_entry_get; extern BI_tool_entry_put bdb_tool_entry_put;