#define MDB_VERSION_MAJOR 0
#define MDB_VERSION_MINOR 8
#define MDB_VERSION_PATCH 0
-#define MDB_VERSION_FULL ((MDB_VERSION_MAJOR << 24) | (MDB_VERSION_MINOR << 16) | MDB_VERSION_PATCH)
+#define MDB_VERINT(a,b,c) (((a) << 24) | ((b) << 16) | (c))
+#define MDB_VERSION_FULL \
+ MDB_VERINT(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH)
+#define MDB_VERSION_DATE "August 11, 2011"
+#define MDB_VERSTR(a,b,c,d) "MDB " #a "." #b "." #c ": (" #d ")"
+#define MDB_VERFOO(a,b,c,d) MDB_VERSTR(a,b,c,d)
+#define MDB_VERSION_STRING \
+ MDB_VERFOO(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH,MDB_VERSION_DATE)
struct MDB_cursor;
struct MDB_txn;
} MDB_cursor_op;
/* return codes */
+/* BerkeleyDB uses -30800 to -30999, we'll go under them */
#define MDB_SUCCESS 0
-#define MDB_FAIL -1
-#define MDB_KEYEXIST -2
-#define MDB_NOTFOUND -3
-#define MDB_VERSION_MISMATCH -4
+#define MDB_KEYEXIST (-30799) /* key/data pair already exists */
+#define MDB_NOTFOUND (-30798) /* key/data pair not found (EOF) */
+#define MDB_PAGE_NOTFOUND (-30797) /* Requested page not found */
+#define MDB_CORRUPTED (-30796) /* Located page was wrong type */
+#define MDB_PANIC (-30795) /* Update of meta page failed, probably I/O error */
+#define MDB_VERSION_MISMATCH (-30794) /* Environment version mismatch */
/* DB flags */
#define MDB_REVERSEKEY 0x02 /* use reverse string keys */
unsigned long ms_entries;
} MDB_stat;
+char *mdb_version(int *major, int *minor, int *patch);
+char *mdb_strerror(int err);
int mdb_env_create(MDB_env **env);
int mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mode_t mode);
int mdb_env_stat(MDB_env *env, MDB_stat *stat);
-int mdb_env_sync(MDB_env *env);
+int mdb_env_sync(MDB_env *env, int force);
void mdb_env_close(MDB_env *env);
+int mdb_env_set_flags(MDB_env *env, unsigned int flags, int onoff);
int mdb_env_get_flags(MDB_env *env, unsigned int *flags);
int mdb_env_get_path(MDB_env *env, const char **path);
int mdb_env_set_mapsize(MDB_env *env, size_t size);