X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldbm.h;h=ffe8804d6c40487594db0c45a898da8c5f6c12bd;hb=d3f433a626e18f30bb5c93d05eaf3a77fa7865f5;hp=49903713590ff42f21c0c11926934a3f7175083c;hpb=b1ab654fbe852070df3931ba63594c7a52f30942;p=openldap diff --git a/include/ldbm.h b/include/ldbm.h index 4990371359..ffe8804d6c 100644 --- a/include/ldbm.h +++ b/include/ldbm.h @@ -1,8 +1,19 @@ +/* + * 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 + #ifdef LDBM_USE_DBBTREE /***************************************************************** @@ -15,7 +26,7 @@ #include #include -#ifdef HAVE_DB185_H +#ifdef HAVE_DB_185_H # include #else # include @@ -26,12 +37,16 @@ #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 */ @@ -57,9 +72,7 @@ typedef DB *LDBM; #define LDBM_REPLACE 0 #define LDBM_SYNC 0x80000000 -/* Do not use #elif. K&R does not support it. */ -#else /* !LDBM_USE_DBBTREE */ -#ifdef LDBM_USE_DBHASH +#elif defined( LDBM_USE_DBHASH ) /***************************************************************** * * @@ -71,7 +84,7 @@ typedef DB *LDBM; #include #include -#ifdef HAVE_DB185_H +#ifdef HAVE_DB_185_H # include #else # include @@ -81,12 +94,16 @@ typedef DB *LDBM; # 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 */ @@ -110,8 +127,7 @@ typedef DB *LDBM; #define LDBM_REPLACE 0 #define LDBM_SYNC 0x80000000 -#else /* !LDBM_USE_DBHASH */ -#ifdef HAVE_GDBM +#elif defined( HAVE_GDBM ) /***************************************************************** * * @@ -121,12 +137,16 @@ typedef DB *LDBM; #include +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 @@ -142,8 +162,7 @@ extern gdbm_error gdbm_errno; #define LDBM_SYNC 0x80000000 -#else /* !HAVE_GDBM */ -#ifdef HAVE_NDBM +#elif defined( HAVE_NDBM ) /***************************************************************** * * @@ -157,10 +176,14 @@ extern gdbm_error gdbm_errno; #include #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 @@ -175,10 +198,12 @@ typedef DBM *LDBM; #define LDBM_REPLACE DBM_REPLACE #define LDBM_SYNC 0 -#endif /* HAVE_NDBM */ -#endif /* HAVE_GDBM */ -#endif /* LDBM_USE_DBHASH */ -#endif /* LDBM_USE_DBBTREE */ +#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 ); @@ -199,4 +224,14 @@ int ldbm_delete( LDBM ldbm, Datum key ); 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_ */