(define-lmdb-func string mdb-version ((major (* int)) (minor (* int)) (patch (* int))) "mdb_version")
(define-lmdb-func string mdb-strerror ((err int)) "mdb_strerror")
(define-lmdb-func int mdb-env-create% ((env void*)) "mdb_env_create")
(define-lmdb-func int mdb-env-open ((env (* mdb-env)) (path string) (flags unsigned-int) (mode mdb-mode-t)) "mdb_env_open")
(define-lmdb-func int mdb-env-copy ((env (* mdb-env)) (path string)) "mdb_env_copy")
(define-lmdb-func int mdb-env-copyfd ((env (* mdb-env)) (fd mdb-filehandle-t)) "mdb_env_copyfd")
(define-lmdb-func int mdb-env-copy2 ((env (* mdb-env)) (path string) (flags unsigned-int)) "mdb_env_copy2")
(define-lmdb-func int mdb-env-copyfd2 ((env (* mdb-env)) (fd mdb-filehandle-t) (flags unsigned-int)) "mdb_env_copyfd2")
(define-lmdb-func int mdb-env-stat ((env (* mdb-env)) (stat (* mdb-stat-t))) "mdb_env_stat")
(define-lmdb-func int mdb-env-info ((env (* mdb-env)) (stat (* mdb-envinfo-t))) "mdb_env_info")
(define-lmdb-func int mdb-env-sync ((env (* mdb-env)) (force int)) "mdb_env_sync")
(define-lmdb-func void mdb-env-close ((env (* mdb-env))) "mdb_env_close")
(define-lmdb-func int mdb-env-set-flags ((env (* mdb-env)) (flags unsigned-int) (onoff int)) "mdb_env_set_flags")
(define-lmdb-func int mdb-env-get-flags ((env (* mdb-env)) (flags (* unsigned-int))) "mdb_env_get_flags")
(define-lmdb-func int mdb-env-get-path ((env (* mdb-env)) (path void*)) "mdb_env_get_path")
(define-lmdb-func int mdb-env-get-fd ((env (* mdb-env)) (fd (* mdb-filehandle-t))) "mdb_env_get_fd")
(define-lmdb-func int mdb-env-set-mapsize ((env (* mdb-env)) (size mdb-size-t)) "mdb_env_set_mapsize")
(define-lmdb-func int mdb-env-set-maxreaders ((env (* mdb-env)) (readers unsigned-int)) "mdb_env_set_maxreaders")
(define-lmdb-func int mdb-env-get-maxreaders ((env (* mdb-env)) (readers (* unsigned-int))) "mdb_env_get_maxreaders")
(define-lmdb-func int mdb-env-set-maxdbs ((env (* mdb-env)) (dbs mdb-dbi)) "mdb_env_set_maxdbs")
(define-lmdb-func int mdb-env-get-maxkeysize ((env (* mdb-env))) "mdb_env_get_maxkeysize")
(define-lmdb-func int mdb-env-set-userctx ((env (* mdb-env)) (ctx void*)) "mdb_env_set_userctx")
(define-lmdb-func void* mdb-env-get-userctx ((env (* mdb-env))) "mdb_env_get_userctx")
(define-lmdb-func int mdb-env-set-assert ((env (* mdb-env)) (func void*)) "mdb_env_set_assert")
(define-lmdb-func int mdb-txn-begin% ((env (* mdb-env)) (parent (* mdb-txn)) (flags unsigned-int) (txn void*)) "mdb_txn_begin")
(define-lmdb-func (* mdb-env) mdb-txn-env ((txn (* mdb-txn))) "mdb_txn_env")
(define-lmdb-func mdb-size-t mdb-txn-id ((txn (* mdb-txn))) "mdb_txn_id")
(define-lmdb-func int mdb-txn-commit ((txn (* mdb-txn))) "mdb_txn_commit")
(define-lmdb-func void mdb-txn-abort ((txn (* mdb-txn))) "mdb_txn_abort")
(define-lmdb-func void mdb-txn-reset ((txn (* mdb-txn))) "mdb_txn_reset")
(define-lmdb-func int mdb-txn-renew ((txn (* mdb-txn))) "mdb_txn_renew")
(define-lmdb-func int mdb-dbi-open% ((txn (* mdb-txn)) (name string) (flags unsigned-int) (dbi (* mdb-dbi))) "mdb_dbi_open")
(define-lmdb-func int mdb-stat ((txn (* mdb-txn)) (dbi mdb-dbi) (stat (* mdb-stat-t))) "mdb_stat")
(define-lmdb-func int mdb-dbi-flags ((txn (* mdb-txn)) (dbi mdb-dbi) (flags (* unsigned-int))) "mdb_dbi_flags")
(define-lmdb-func void mdb-dbi-close ((env (* mdb-env)) (dbi mdb-dbi)) "mdb_dbi_close")
(define-lmdb-func int mdb-drop ((txn (* mdb-txn)) (dbi mdb-dbi) (del int)) "mdb_drop")
(define-lmdb-func int mdb-set-compare ((txn (* mdb-txn)) (dbi mdb-dbi) (cmp void*)) "mdb_set_compare")
(define-lmdb-func int mdb-set-dupsort ((txn (* mdb-txn)) (dbi mdb-dbi) (cmp void*)) "mdb_set_dupsort")
(define-lmdb-func int mdb-set-relfunc ((txn (* mdb-txn)) (dbi mdb-dbi) (rel void*)) "mdb_set_relfunc")
(define-lmdb-func int mdb-set-relctx ((txn (* mdb-txn)) (dbi mdb-dbi) (ctx void*)) "mdb_set_relctx")
(define-lmdb-func int mdb-get ((txn (* mdb-txn)) (dbi mdb-dbi) (key (* mdb-val)) (data (* mdb-val))) "mdb_get")
(define-lmdb-func int mdb-put ((txn (* mdb-txn)) (dbi mdb-dbi) (key (* mdb-val)) (data (* mdb-val)) (flags unsigned-int)) "mdb_put")
(define-lmdb-func int mdb-del ((txn (* mdb-txn)) (dbi mdb-dbi) (key (* mdb-val)) (data (* mdb-val))) "mdb_del")
(define-lmdb-func int mdb-cursor-open% ((txn (* mdb-txn)) (dbi mdb-dbi) (cursor void*)) "mdb_cursor_open")
(define-lmdb-func void mdb-cursor-close ((cursor (* mdb-cursor))) "mdb_cursor_close")
(define-lmdb-func int mdb-cursor-renew ((txn (* mdb-txn)) (cursor (* mdb-cursor))) "mdb_cursor_renew")
(define-lmdb-func (* mdb-txn) mdb-cursor-txn ((cursor (* mdb-cursor))) "mdb_cursor_txn")
(define-lmdb-func mdb-dbi mdb-cursor-dbi ((cursor (* mdb-cursor))) "mdb_cursor_dbi")
(define-lmdb-func int mdb-cursor-get ((cursor (* mdb-cursor)) (key (* mdb-val)) (data (* mdb-val)) (op mdb-cursor-op-t)) "mdb_cursor_get")
(define-lmdb-func int mdb-cursor-put ((cursor (* mdb-cursor)) (key (* mdb-val)) (data (* mdb-val)) (flags unsigned-int)) "mdb_cursor_put")
(define-lmdb-func int mdb-cursor-del ((cursor (* mdb-cursor)) (flags unsigned-int)) "mdb_cursor_del")
(define-lmdb-func int mdb-cursor-count ((cursor (* mdb-cursor)) (countp (* mdb-size-t))) "mdb_cursor_count")
(define-lmdb-func int mdb-cmp ((txn (* mdb-txn)) (dbi mdb-dbi) (a (* mdb-val)) (b (* mdb-val))) "mdb_cmp")
(define-lmdb-func int mdb-dcmp ((txn (* mdb-txn)) (dbi mdb-dbi) (a (* mdb-val)) (b (* mdb-val))) "mdb_dcmp")
(define-lmdb-func int mdb-reader-list ((env (* mdb-env)) (func void*) (ctx void*)) "mdb_reader_list")
(define-lmdb-func int mdb-reader-check ((env (* mdb-env)) (dead (* int))) "mdb_reader_check")
