X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-bdb%2Fproto-bdb.h;h=1a50eef2beb931e114c696523cffdd825d7dffc7;hb=5d9479a3e82cc1ed5260f26878bf710a3b65faec;hp=30d7509f5c4c02aacd4b367137f048ff4d7d3d58;hpb=b503ca65ee15e74b9aeeebb4db8d49f179031e2d;p=openldap diff --git a/servers/slapd/back-bdb/proto-bdb.h b/servers/slapd/back-bdb/proto-bdb.h index 30d7509f5c..1a50eef2be 100644 --- a/servers/slapd/back-bdb/proto-bdb.h +++ b/servers/slapd/back-bdb/proto-bdb.h @@ -1,6 +1,6 @@ /* $OpenLDAP$ */ /* - * Copyright 2000 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 2000-2002 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -57,8 +57,10 @@ bdb_db_cache( /* * dn2entry.c */ -int bdb_dn2entry LDAP_P(( BackendDB *be, DB_TXN *tid, - struct berval *dn, Entry **e, Entry **matched, int flags )); +int bdb_dn2entry_rw LDAP_P(( BackendDB *be, DB_TXN *tid, + struct berval *dn, Entry **e, Entry **matched, int flags, int rw , u_int32_t locker, DB_LOCK *lock)); +#define bdb_dn2entry_r(be, tid, dn, e, m, f, locker, lock) bdb_dn2entry_rw((be), (tid), (dn), (e), (m), (f), 0, locker, lock) +#define bdb_dn2entry_w(be, tid, dn, e, m, f, locker, lock) bdb_dn2entry_rw((be), (tid), (dn), (e), (m), (f), 1, locker, lock) /* * dn2id.c @@ -67,19 +69,21 @@ int bdb_dn2id( BackendDB *be, DB_TXN *tid, struct berval *dn, - ID *id ); + ID *id, + int flags ); int bdb_dn2id_matched( BackendDB *be, DB_TXN *tid, struct berval *dn, ID *id, - char **matchedDN ); + ID *id2, + int flags ); int bdb_dn2id_add( BackendDB *be, DB_TXN *tid, - char *pdn, + struct berval *pdn, Entry *e ); int bdb_dn2id_delete( @@ -91,7 +95,8 @@ int bdb_dn2id_delete( int bdb_dn2id_children( BackendDB *be, DB_TXN *tid, - struct berval *dn ); + struct berval *dn, + int flags ); int bdb_dn2idl( @@ -103,7 +108,7 @@ bdb_dn2idl( /* * entry.c */ -int bdb_entry_return( BackendDB *be, Entry *e ); +int bdb_entry_return( Entry *e ); BI_entry_release_rw bdb_entry_release; /* @@ -118,7 +123,8 @@ int bdb_filter_candidates( Backend *be, Filter *f, ID *ids, - ID *tmp ); + ID *tmp, + ID *stack ); /* * group.c @@ -127,7 +133,7 @@ int bdb_filter_candidates( BI_acl_group bdb_group; /* - * id2entry + * id2entry.c */ int bdb_id2entry_add( BackendDB *be, @@ -142,13 +148,20 @@ int bdb_id2entry_update( int bdb_id2entry_delete( BackendDB *be, DB_TXN *tid, - ID id ); + Entry *e); -int bdb_id2entry( +int bdb_id2entry_rw( BackendDB *be, DB_TXN *tid, ID id, - Entry **e ); + Entry **e, + int rw, + u_int32_t locker, + DB_LOCK *lock ); +#define bdb_id2entry_r(be, tid, id, e, locker, lock) bdb_id2entry_rw((be), (tid), (id), (e), 0, locker, lock) +#define bdb_id2entry_w(be, tid, id, e, locker, lock) bdb_id2entry_rw((be), (tid), (id), (e), 1, locker, lock) + +void bdb_entry_free ( Entry *e ); /* * idl.c @@ -207,6 +220,11 @@ ID bdb_idl_next( ID *ids, ID *cursor ); * index.c */ extern int +bdb_index_is_indexed LDAP_P(( + Backend *be, + AttributeDescription *desc )); + +extern int bdb_index_param LDAP_P(( Backend *be, AttributeDescription *desc, @@ -220,7 +238,7 @@ bdb_index_values LDAP_P(( Backend *be, DB_TXN *txn, AttributeDescription *desc, - struct berval **vals, + BerVarray vals, ID id, int op )); @@ -232,6 +250,11 @@ int bdb_index_entry LDAP_P(( Backend *be, DB_TXN *t, #define bdb_index_entry_del(be,t,e,ap) \ bdb_index_entry((be),(t),SLAP_INDEX_DELETE_OP,(e),(ap)) +/* + * init.c + */ +extern struct berval bdb_uuid; + /* * key.c */ @@ -277,6 +300,61 @@ int bdb_modify_internal( */ BI_op_extended bdb_exop_passwd; + +/* + * cache.c + */ + +void bdb_cache_entry_commit( Entry *e ); +void bdb_cache_return_entry_rw( DB_ENV *env, Cache *cache, Entry *e, int rw, DB_LOCK *lock ); +#define bdb_cache_return_entry_r(env, c, e, l) bdb_cache_return_entry_rw((env), (c), (e), 0, (l)) +#define bdb_cache_return_entry_w(env, c, e, l) bdb_cache_return_entry_rw((env), (c), (e), 1, (l)) +void bdb_unlocked_cache_return_entry_rw( Cache *cache, Entry *e, int rw ); +#define bdb_unlocked_cache_return_entry_r( c, e ) bdb_unlocked_cache_return_entry_rw((c), (e), 0) +#define bdb_unlocked_cache_return_entry_w( c, e ) bdb_unlocked_cache_return_entry_rw((c), (e), 1) +int bdb_cache_add_entry_rw( + DB_ENV *env, + Cache *cache, + Entry *e, + int rw, + u_int32_t locker, + DB_LOCK *lock +); +int bdb_cache_update_entry( + Cache *cache, + Entry *e +); +ID bdb_cache_find_entry_ndn2id( + Backend *be, + Cache *cache, + struct berval *ndn +); +Entry* bdb_cache_find_entry_id( + DB_ENV *env, + Cache *cache, + ID id, + int rw, + u_int32_t locker, + DB_LOCK *lock +); +int bdb_cache_delete_entry( + Cache *cache, + Entry *e +); +void bdb_cache_release_all( Cache *cache ); + +#ifdef BDB_REUSE_LOCKERS + +int bdb_locker_id( Operation *op, DB_ENV *env, int *locker ); + +#endif + +#ifdef HAVE_EBCDIC +char *ebcdic_dberror( int rc ); + +#define db_strerror(x) ebcdic_dberror(x) +#endif + LDAP_END_DECL #endif /* _PROTO_BDB_H */