--- /dev/null
+#include <bindings.dsl.h>
+#include <apr_dbm.h>
+
+module Bindings.APR.DBM where
+#strict_import
+import Bindings.APR
+import Bindings.APR.ErrNo
+import Bindings.APR.File.Info
+import Bindings.APR.Pools
+
+#opaque_t apr_dbm_t
+
+#starttype apr_datum_t
+# field dptr , Ptr CChar
+# field dsize, <apr_size_t>
+#stoptype
+
+#num APR_DBM_READONLY
+#num APR_DBM_READWRITE
+#num APR_DBM_RWCREATE
+#num APR_DBM_RWTRUNC
+
+#ccall apr_dbm_open_ex, Ptr (Ptr <apr_dbm_t>) -> Ptr CChar -> Ptr CChar -> <apr_int32_t> -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_dbm_open , Ptr (Ptr <apr_dbm_t>) -> Ptr CChar -> <apr_int32_t> -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_dbm_close , Ptr <apr_dbm_t> -> IO ()
+#cinline apr_dbm_fetch , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_store , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_delete , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_exists , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO CInt
+#ccall apr_dbm_firstkey, Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#ccall apr_dbm_nextkey , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_freedatum, Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO ()
+#ccall apr_dbm_geterror, Ptr <apr_dbm_t> -> Ptr CInt -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)
+#ccall apr_dbm_get_usednames_ex, Ptr <apr_pool_t> -> Ptr CChar -> Ptr CChar -> Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> IO <apr_status_t>
+#ccall apr_dbm_get_usednames, Ptr <apr_pool_t> -> Ptr CChar -> Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> IO ()
--- /dev/null
+#include <bindings.cmacros.h>
+#include <apr_dbm.h>
+
+apr_status_t inline_apr_dbm_fetch(apr_dbm_t* dbm, apr_datum_t* key, apr_datum_t* pvalue) {
+ return apr_dbm_fetch(dbm, *key, pvalue);
+}
+
+apr_status_t inline_apr_dbm_store(apr_dbm_t* dbm, apr_datum_t* key, apr_datum_t* value) {
+ return apr_dbm_store(dbm, *key, *value);
+}
+
+apr_status_t inline_apr_dbm_delete(apr_dbm_t* dbm, apr_datum_t* key) {
+ return apr_dbm_delete(dbm, *key);
+}
+
+int inline_apr_dbm_exists(apr_dbm_t* dbm, apr_datum_t* key) {
+ return apr_dbm_exists(dbm, *key);
+}
+
+void inline_apr_dbm_freedatum(apr_dbm_t* dbm, apr_datum_t* data) {
+ apr_dbm_freedatum(dbm, *data);
+}