-int ldbm_initialize( void );
-int ldbm_shutdown( void );
-
-int ldbm_errno( LDBM ldbm );
-LDBM ldbm_open( char *name, int rw, int mode, int dbcachesize );
-void ldbm_close( LDBM ldbm );
-void ldbm_sync( LDBM ldbm );
-void ldbm_datum_free( LDBM ldbm, Datum data );
-Datum ldbm_datum_dup( LDBM ldbm, Datum data );
-Datum ldbm_fetch( LDBM ldbm, Datum key );
-int ldbm_store( LDBM ldbm, Datum key, Datum data, int flags );
-int ldbm_delete( LDBM ldbm, Datum key );
-
-#if HAVE_BERKELEY_DB2
- void *ldbm_malloc( size_t size );
- Datum ldbm_firstkey( LDBM ldbm, DBC **dbch );
- Datum ldbm_nextkey( LDBM ldbm, Datum key, DBC *dbcp );
-#else
- Datum ldbm_firstkey( LDBM ldbm );
- Datum ldbm_nextkey( LDBM ldbm, Datum key );
-#endif
+LDAP_LDBM_F (int) ldbm_initialize( const char * );
+LDAP_LDBM_F (int) ldbm_shutdown( void );
+
+LDAP_LDBM_F (DB_ENV*) ldbm_initialize_env(const char *, int dbcachesize, int *envdirok);
+LDAP_LDBM_F (void) ldbm_shutdown_env(DB_ENV *);
+
+LDAP_LDBM_F (int) ldbm_errno( LDBM ldbm );
+LDAP_LDBM_F (LDBM) ldbm_open( DB_ENV *env, char *name, int rw, int mode, int dbcachesize );
+LDAP_LDBM_F (void) ldbm_close( LDBM ldbm );
+LDAP_LDBM_F (void) ldbm_sync( LDBM ldbm );
+LDAP_LDBM_F (void) ldbm_datum_free( LDBM ldbm, Datum data );
+LDAP_LDBM_F (Datum) ldbm_datum_dup( LDBM ldbm, Datum data );
+LDAP_LDBM_F (Datum) ldbm_fetch( LDBM ldbm, Datum key );
+LDAP_LDBM_F (int) ldbm_store( LDBM ldbm, Datum key, Datum data, int flags );
+LDAP_LDBM_F (int) ldbm_delete( LDBM ldbm, Datum key );