+/*
+ * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted only
+ * as authorized by the OpenLDAP Public License. A copy of this
+ * license is available at http://www.OpenLDAP.org/license.html or
+ * in file LICENSE in the top-level directory of the distribution.
+ */
/* ldbm.h - ldap dbm compatibility routine header file */
#ifndef _LDBM_H_
#define _LDBM_H_
+#include <ldap_cdefs.h>
+
#ifdef LDBM_USE_DBBTREE
/*****************************************************************
#include <limits.h>
#include <fcntl.h>
-#ifdef HAVE_DB185_H
+#ifdef HAVE_DB_185_H
# include <db_185.h>
#else
# include <db.h>
#endif
+LDAP_BEGIN_DECL
+
typedef DBT Datum;
#define dsize size
#define dptr data
typedef DB *LDBM;
+LDAP_END_DECL
+
#define DB_TYPE DB_BTREE
/* for ldbm_open */
#include <limits.h>
#include <fcntl.h>
-#ifdef HAVE_DB185_H
+#ifdef HAVE_DB_185_H
# include <db_185.h>
#else
# include <db.h>
# endif
#endif
+LDAP_BEGIN_DECL
+
typedef DBT Datum;
#define dsize size
#define dptr data
typedef DB *LDBM;
+LDAP_END_DECL
+
#define DB_TYPE DB_HASH
/* for ldbm_open */
#include <gdbm.h>
+LDAP_BEGIN_DECL
+
typedef datum Datum;
typedef GDBM_FILE LDBM;
extern gdbm_error gdbm_errno;
+LDAP_END_DECL
+
/* for ldbm_open */
#define LDBM_READER GDBM_READER
#define LDBM_WRITER GDBM_WRITER
#include <fcntl.h>
#endif
+LDAP_BEGIN_DECL
+
typedef datum Datum;
typedef DBM *LDBM;
+LDAP_END_DECL
+
/* for ldbm_open */
#define LDBM_READER O_RDONLY
#define LDBM_WRITER O_WRONLY
#endif
+LDAP_BEGIN_DECL
+
+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 );
Datum ldbm_nextkey( LDBM ldbm, Datum key );
#endif
+
+/* initialization of Datum structures */
+#ifdef HAVE_BERKELEY_DB2
+# define ldbm_datum_init(d) ((void)memset(&(d), 0, sizeof(Datum)))
+#else
+# define ldbm_datum_init(d) ((void)0)
+#endif /* HAVE_BERKELEY_DB2 */
+
+LDAP_END_DECL
+
#endif /* _ldbm_h_ */