+#include <bindings.dsl.h>
+#include <apr_sdbm.h>
+
+module Bindings.APR.SDBM where
+#strict_import
+import Bindings.APR
+import Bindings.APR.ErrNo
+import Bindings.APR.File.Info
+import Bindings.APR.Pools
+
+#opaque_t apr_sdbm_t
+
+#starttype apr_sdbm_datum_t
+# field dptr , Ptr CChar
+# field dsize, CInt
+#stoptype
+
+#globalarray APR_SDBM_DIRFEXT, CChar
+#globalarray APR_SDBM_PAGFEXT, CChar
+
+#num APR_SDBM_INSERT
+#num APR_SDBM_REPLACE
+#num APR_SDBM_INSERTDUP
+
+#ccall apr_sdbm_open , Ptr (Ptr <apr_sdbm_t>) -> Ptr CChar -> <apr_int32_t> -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_sdbm_close , Ptr <apr_sdbm_t> -> IO <apr_status_t>
+#ccall apr_sdbm_lock , Ptr <apr_sdbm_t> -> CInt -> IO <apr_status_t>
+#ccall apr_sdbm_unlock , Ptr <apr_sdbm_t> -> IO <apr_status_t>
+#cinline apr_sdbm_fetch , Ptr <apr_sdbm_t> -> Ptr <apr_sdbm_datum_t> -> Ptr <apr_sdbm_datum_t> -> IO <apr_status_t>
+#cinline apr_sdbm_store , Ptr <apr_sdbm_t> -> Ptr <apr_sdbm_datum_t> -> Ptr <apr_sdbm_datum_t> -> CInt -> IO <apr_status_t>
+#cinline apr_sdbm_delete , Ptr <apr_sdbm_t> -> Ptr <apr_sdbm_datum_t> -> IO <apr_status_t>
+#ccall apr_sdbm_firstkey, Ptr <apr_sdbm_t> -> Ptr <apr_sdbm_datum_t> -> IO <apr_status_t>
+#ccall apr_sdbm_nextkey , Ptr <apr_sdbm_t> -> Ptr <apr_sdbm_datum_t> -> IO <apr_status_t>
+#ccall apr_sdbm_rdonly , Ptr <apr_sdbm_t> -> IO CInt