Artifact
589b9e8c2b41fe189b07a2b12ff12271b9df0fa5:
- File
lmdb/lmdb-functions.ss
— part of check-in
[112a40d018]
at
2016-09-01 08:27:10
on branch trunk
— various improvements, added lmdb , added license notices
(user:
ovenpasta@pizzahack.eu
size: 5558)
0000: 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e (define-lmdb-fun
0010: 63 20 73 74 72 69 6e 67 20 6d 64 62 2d 76 65 72 c string mdb-ver
0020: 73 69 6f 6e 20 28 28 6d 61 6a 6f 72 20 28 2a 20 sion ((major (*
0030: 69 6e 74 29 29 20 28 6d 69 6e 6f 72 20 28 2a 20 int)) (minor (*
0040: 69 6e 74 29 29 20 28 70 61 74 63 68 20 28 2a 20 int)) (patch (*
0050: 69 6e 74 29 29 29 20 22 6d 64 62 5f 76 65 72 73 int))) "mdb_vers
0060: 69 6f 6e 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d ion").(define-lm
0070: 64 62 2d 66 75 6e 63 20 73 74 72 69 6e 67 20 6d db-func string m
0080: 64 62 2d 73 74 72 65 72 72 6f 72 20 28 28 65 72 db-strerror ((er
0090: 72 20 69 6e 74 29 29 20 22 6d 64 62 5f 73 74 72 r int)) "mdb_str
00a0: 65 72 72 6f 72 22 29 0a 28 64 65 66 69 6e 65 2d error").(define-
00b0: 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 lmdb-func int md
00c0: 62 2d 65 6e 76 2d 63 72 65 61 74 65 25 20 28 28 b-env-create% ((
00d0: 65 6e 76 20 76 6f 69 64 2a 29 29 20 22 6d 64 62 env void*)) "mdb
00e0: 5f 65 6e 76 5f 63 72 65 61 74 65 22 29 0a 28 64 _env_create").(d
00f0: 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 efine-lmdb-func
0100: 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 6f 70 65 6e int mdb-env-open
0110: 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 6e ((env (* mdb-en
0120: 76 29 29 20 28 70 61 74 68 20 73 74 72 69 6e 67 v)) (path string
0130: 29 20 28 66 6c 61 67 73 20 75 6e 73 69 67 6e 65 ) (flags unsigne
0140: 64 2d 69 6e 74 29 20 28 6d 6f 64 65 20 6d 64 62 d-int) (mode mdb
0150: 2d 6d 6f 64 65 2d 74 29 29 20 22 6d 64 62 5f 65 -mode-t)) "mdb_e
0160: 6e 76 5f 6f 70 65 6e 22 29 0a 28 64 65 66 69 6e nv_open").(defin
0170: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 e-lmdb-func int
0180: 6d 64 62 2d 65 6e 76 2d 63 6f 70 79 20 28 28 65 mdb-env-copy ((e
0190: 6e 76 20 28 2a 20 6d 64 62 2d 65 6e 76 29 29 20 nv (* mdb-env))
01a0: 28 70 61 74 68 20 73 74 72 69 6e 67 29 29 20 22 (path string)) "
01b0: 6d 64 62 5f 65 6e 76 5f 63 6f 70 79 22 29 0a 28 mdb_env_copy").(
01c0: 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 define-lmdb-func
01d0: 20 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 63 6f 70 int mdb-env-cop
01e0: 79 66 64 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 yfd ((env (* mdb
01f0: 2d 65 6e 76 29 29 20 28 66 64 20 6d 64 62 2d 66 -env)) (fd mdb-f
0200: 69 6c 65 68 61 6e 64 6c 65 2d 74 29 29 20 22 6d ilehandle-t)) "m
0210: 64 62 5f 65 6e 76 5f 63 6f 70 79 66 64 22 29 0a db_env_copyfd").
0220: 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e (define-lmdb-fun
0230: 63 20 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 63 6f c int mdb-env-co
0240: 70 79 32 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 py2 ((env (* mdb
0250: 2d 65 6e 76 29 29 20 28 70 61 74 68 20 73 74 72 -env)) (path str
0260: 69 6e 67 29 20 28 66 6c 61 67 73 20 75 6e 73 69 ing) (flags unsi
0270: 67 6e 65 64 2d 69 6e 74 29 29 20 22 6d 64 62 5f gned-int)) "mdb_
0280: 65 6e 76 5f 63 6f 70 79 32 22 29 0a 28 64 65 66 env_copy2").(def
0290: 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e ine-lmdb-func in
02a0: 74 20 6d 64 62 2d 65 6e 76 2d 63 6f 70 79 66 64 t mdb-env-copyfd
02b0: 32 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 2 ((env (* mdb-e
02c0: 6e 76 29 29 20 28 66 64 20 6d 64 62 2d 66 69 6c nv)) (fd mdb-fil
02d0: 65 68 61 6e 64 6c 65 2d 74 29 20 28 66 6c 61 67 ehandle-t) (flag
02e0: 73 20 75 6e 73 69 67 6e 65 64 2d 69 6e 74 29 29 s unsigned-int))
02f0: 20 22 6d 64 62 5f 65 6e 76 5f 63 6f 70 79 66 64 "mdb_env_copyfd
0300: 32 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2").(define-lmdb
0310: 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 65 6e -func int mdb-en
0320: 76 2d 73 74 61 74 20 28 28 65 6e 76 20 28 2a 20 v-stat ((env (*
0330: 6d 64 62 2d 65 6e 76 29 29 20 28 73 74 61 74 20 mdb-env)) (stat
0340: 28 2a 20 6d 64 62 2d 73 74 61 74 2d 74 29 29 29 (* mdb-stat-t)))
0350: 20 22 6d 64 62 5f 65 6e 76 5f 73 74 61 74 22 29 "mdb_env_stat")
0360: 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 .(define-lmdb-fu
0370: 6e 63 20 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 69 nc int mdb-env-i
0380: 6e 66 6f 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 nfo ((env (* mdb
0390: 2d 65 6e 76 29 29 20 28 73 74 61 74 20 28 2a 20 -env)) (stat (*
03a0: 6d 64 62 2d 65 6e 76 69 6e 66 6f 2d 74 29 29 29 mdb-envinfo-t)))
03b0: 20 22 6d 64 62 5f 65 6e 76 5f 69 6e 66 6f 22 29 "mdb_env_info")
03c0: 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 .(define-lmdb-fu
03d0: 6e 63 20 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 73 nc int mdb-env-s
03e0: 79 6e 63 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 ync ((env (* mdb
03f0: 2d 65 6e 76 29 29 20 28 66 6f 72 63 65 20 69 6e -env)) (force in
0400: 74 29 29 20 22 6d 64 62 5f 65 6e 76 5f 73 79 6e t)) "mdb_env_syn
0410: 63 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 c").(define-lmdb
0420: 2d 66 75 6e 63 20 76 6f 69 64 20 6d 64 62 2d 65 -func void mdb-e
0430: 6e 76 2d 63 6c 6f 73 65 20 28 28 65 6e 76 20 28 nv-close ((env (
0440: 2a 20 6d 64 62 2d 65 6e 76 29 29 29 20 22 6d 64 * mdb-env))) "md
0450: 62 5f 65 6e 76 5f 63 6c 6f 73 65 22 29 0a 28 64 b_env_close").(d
0460: 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 efine-lmdb-func
0470: 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 73 65 74 2d int mdb-env-set-
0480: 66 6c 61 67 73 20 28 28 65 6e 76 20 28 2a 20 6d flags ((env (* m
0490: 64 62 2d 65 6e 76 29 29 20 28 66 6c 61 67 73 20 db-env)) (flags
04a0: 75 6e 73 69 67 6e 65 64 2d 69 6e 74 29 20 28 6f unsigned-int) (o
04b0: 6e 6f 66 66 20 69 6e 74 29 29 20 22 6d 64 62 5f noff int)) "mdb_
04c0: 65 6e 76 5f 73 65 74 5f 66 6c 61 67 73 22 29 0a env_set_flags").
04d0: 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e (define-lmdb-fun
04e0: 63 20 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 67 65 c int mdb-env-ge
04f0: 74 2d 66 6c 61 67 73 20 28 28 65 6e 76 20 28 2a t-flags ((env (*
0500: 20 6d 64 62 2d 65 6e 76 29 29 20 28 66 6c 61 67 mdb-env)) (flag
0510: 73 20 28 2a 20 75 6e 73 69 67 6e 65 64 2d 69 6e s (* unsigned-in
0520: 74 29 29 29 20 22 6d 64 62 5f 65 6e 76 5f 67 65 t))) "mdb_env_ge
0530: 74 5f 66 6c 61 67 73 22 29 0a 28 64 65 66 69 6e t_flags").(defin
0540: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 e-lmdb-func int
0550: 6d 64 62 2d 65 6e 76 2d 67 65 74 2d 70 61 74 68 mdb-env-get-path
0560: 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 6e ((env (* mdb-en
0570: 76 29 29 20 28 70 61 74 68 20 76 6f 69 64 2a 29 v)) (path void*)
0580: 29 20 22 6d 64 62 5f 65 6e 76 5f 67 65 74 5f 70 ) "mdb_env_get_p
0590: 61 74 68 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d ath").(define-lm
05a0: 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d db-func int mdb-
05b0: 65 6e 76 2d 67 65 74 2d 66 64 20 28 28 65 6e 76 env-get-fd ((env
05c0: 20 28 2a 20 6d 64 62 2d 65 6e 76 29 29 20 28 66 (* mdb-env)) (f
05d0: 64 20 28 2a 20 6d 64 62 2d 66 69 6c 65 68 61 6e d (* mdb-filehan
05e0: 64 6c 65 2d 74 29 29 29 20 22 6d 64 62 5f 65 6e dle-t))) "mdb_en
05f0: 76 5f 67 65 74 5f 66 64 22 29 0a 28 64 65 66 69 v_get_fd").(defi
0600: 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 ne-lmdb-func int
0610: 20 6d 64 62 2d 65 6e 76 2d 73 65 74 2d 6d 61 70 mdb-env-set-map
0620: 73 69 7a 65 20 28 28 65 6e 76 20 28 2a 20 6d 64 size ((env (* md
0630: 62 2d 65 6e 76 29 29 20 28 73 69 7a 65 20 6d 64 b-env)) (size md
0640: 62 2d 73 69 7a 65 2d 74 29 29 20 22 6d 64 62 5f b-size-t)) "mdb_
0650: 65 6e 76 5f 73 65 74 5f 6d 61 70 73 69 7a 65 22 env_set_mapsize"
0660: 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 ).(define-lmdb-f
0670: 75 6e 63 20 69 6e 74 20 6d 64 62 2d 65 6e 76 2d unc int mdb-env-
0680: 73 65 74 2d 6d 61 78 72 65 61 64 65 72 73 20 28 set-maxreaders (
0690: 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 6e 76 29 (env (* mdb-env)
06a0: 29 20 28 72 65 61 64 65 72 73 20 75 6e 73 69 67 ) (readers unsig
06b0: 6e 65 64 2d 69 6e 74 29 29 20 22 6d 64 62 5f 65 ned-int)) "mdb_e
06c0: 6e 76 5f 73 65 74 5f 6d 61 78 72 65 61 64 65 72 nv_set_maxreader
06d0: 73 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 s").(define-lmdb
06e0: 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 65 6e -func int mdb-en
06f0: 76 2d 67 65 74 2d 6d 61 78 72 65 61 64 65 72 73 v-get-maxreaders
0700: 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 6e ((env (* mdb-en
0710: 76 29 29 20 28 72 65 61 64 65 72 73 20 28 2a 20 v)) (readers (*
0720: 75 6e 73 69 67 6e 65 64 2d 69 6e 74 29 29 29 20 unsigned-int)))
0730: 22 6d 64 62 5f 65 6e 76 5f 67 65 74 5f 6d 61 78 "mdb_env_get_max
0740: 72 65 61 64 65 72 73 22 29 0a 28 64 65 66 69 6e readers").(defin
0750: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 e-lmdb-func int
0760: 6d 64 62 2d 65 6e 76 2d 73 65 74 2d 6d 61 78 64 mdb-env-set-maxd
0770: 62 73 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d bs ((env (* mdb-
0780: 65 6e 76 29 29 20 28 64 62 73 20 6d 64 62 2d 64 env)) (dbs mdb-d
0790: 62 69 29 29 20 22 6d 64 62 5f 65 6e 76 5f 73 65 bi)) "mdb_env_se
07a0: 74 5f 6d 61 78 64 62 73 22 29 0a 28 64 65 66 69 t_maxdbs").(defi
07b0: 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 ne-lmdb-func int
07c0: 20 6d 64 62 2d 65 6e 76 2d 67 65 74 2d 6d 61 78 mdb-env-get-max
07d0: 6b 65 79 73 69 7a 65 20 28 28 65 6e 76 20 28 2a keysize ((env (*
07e0: 20 6d 64 62 2d 65 6e 76 29 29 29 20 22 6d 64 62 mdb-env))) "mdb
07f0: 5f 65 6e 76 5f 67 65 74 5f 6d 61 78 6b 65 79 73 _env_get_maxkeys
0800: 69 7a 65 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d ize").(define-lm
0810: 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d db-func int mdb-
0820: 65 6e 76 2d 73 65 74 2d 75 73 65 72 63 74 78 20 env-set-userctx
0830: 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 6e 76 ((env (* mdb-env
0840: 29 29 20 28 63 74 78 20 76 6f 69 64 2a 29 29 20 )) (ctx void*))
0850: 22 6d 64 62 5f 65 6e 76 5f 73 65 74 5f 75 73 65 "mdb_env_set_use
0860: 72 63 74 78 22 29 0a 28 64 65 66 69 6e 65 2d 6c rctx").(define-l
0870: 6d 64 62 2d 66 75 6e 63 20 76 6f 69 64 2a 20 6d mdb-func void* m
0880: 64 62 2d 65 6e 76 2d 67 65 74 2d 75 73 65 72 63 db-env-get-userc
0890: 74 78 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d tx ((env (* mdb-
08a0: 65 6e 76 29 29 29 20 22 6d 64 62 5f 65 6e 76 5f env))) "mdb_env_
08b0: 67 65 74 5f 75 73 65 72 63 74 78 22 29 0a 28 64 get_userctx").(d
08c0: 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 efine-lmdb-func
08d0: 69 6e 74 20 6d 64 62 2d 65 6e 76 2d 73 65 74 2d int mdb-env-set-
08e0: 61 73 73 65 72 74 20 28 28 65 6e 76 20 28 2a 20 assert ((env (*
08f0: 6d 64 62 2d 65 6e 76 29 29 20 28 66 75 6e 63 20 mdb-env)) (func
0900: 76 6f 69 64 2a 29 29 20 22 6d 64 62 5f 65 6e 76 void*)) "mdb_env
0910: 5f 73 65 74 5f 61 73 73 65 72 74 22 29 0a 28 64 _set_assert").(d
0920: 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 efine-lmdb-func
0930: 69 6e 74 20 6d 64 62 2d 74 78 6e 2d 62 65 67 69 int mdb-txn-begi
0940: 6e 25 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d n% ((env (* mdb-
0950: 65 6e 76 29 29 20 28 70 61 72 65 6e 74 20 28 2a env)) (parent (*
0960: 20 6d 64 62 2d 74 78 6e 29 29 20 28 66 6c 61 67 mdb-txn)) (flag
0970: 73 20 75 6e 73 69 67 6e 65 64 2d 69 6e 74 29 20 s unsigned-int)
0980: 28 74 78 6e 20 76 6f 69 64 2a 29 29 20 22 6d 64 (txn void*)) "md
0990: 62 5f 74 78 6e 5f 62 65 67 69 6e 22 29 0a 28 64 b_txn_begin").(d
09a0: 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 efine-lmdb-func
09b0: 28 2a 20 6d 64 62 2d 65 6e 76 29 20 6d 64 62 2d (* mdb-env) mdb-
09c0: 74 78 6e 2d 65 6e 76 20 28 28 74 78 6e 20 28 2a txn-env ((txn (*
09d0: 20 6d 64 62 2d 74 78 6e 29 29 29 20 22 6d 64 62 mdb-txn))) "mdb
09e0: 5f 74 78 6e 5f 65 6e 76 22 29 0a 28 64 65 66 69 _txn_env").(defi
09f0: 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 6d 64 62 ne-lmdb-func mdb
0a00: 2d 73 69 7a 65 2d 74 20 6d 64 62 2d 74 78 6e 2d -size-t mdb-txn-
0a10: 69 64 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d id ((txn (* mdb-
0a20: 74 78 6e 29 29 29 20 22 6d 64 62 5f 74 78 6e 5f txn))) "mdb_txn_
0a30: 69 64 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 id").(define-lmd
0a40: 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 74 b-func int mdb-t
0a50: 78 6e 2d 63 6f 6d 6d 69 74 20 28 28 74 78 6e 20 xn-commit ((txn
0a60: 28 2a 20 6d 64 62 2d 74 78 6e 29 29 29 20 22 6d (* mdb-txn))) "m
0a70: 64 62 5f 74 78 6e 5f 63 6f 6d 6d 69 74 22 29 0a db_txn_commit").
0a80: 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e (define-lmdb-fun
0a90: 63 20 76 6f 69 64 20 6d 64 62 2d 74 78 6e 2d 61 c void mdb-txn-a
0aa0: 62 6f 72 74 20 28 28 74 78 6e 20 28 2a 20 6d 64 bort ((txn (* md
0ab0: 62 2d 74 78 6e 29 29 29 20 22 6d 64 62 5f 74 78 b-txn))) "mdb_tx
0ac0: 6e 5f 61 62 6f 72 74 22 29 0a 28 64 65 66 69 6e n_abort").(defin
0ad0: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 76 6f 69 64 e-lmdb-func void
0ae0: 20 6d 64 62 2d 74 78 6e 2d 72 65 73 65 74 20 28 mdb-txn-reset (
0af0: 28 74 78 6e 20 28 2a 20 6d 64 62 2d 74 78 6e 29 (txn (* mdb-txn)
0b00: 29 29 20 22 6d 64 62 5f 74 78 6e 5f 72 65 73 65 )) "mdb_txn_rese
0b10: 74 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 t").(define-lmdb
0b20: 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 74 78 -func int mdb-tx
0b30: 6e 2d 72 65 6e 65 77 20 28 28 74 78 6e 20 28 2a n-renew ((txn (*
0b40: 20 6d 64 62 2d 74 78 6e 29 29 29 20 22 6d 64 62 mdb-txn))) "mdb
0b50: 5f 74 78 6e 5f 72 65 6e 65 77 22 29 0a 28 64 65 _txn_renew").(de
0b60: 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 fine-lmdb-func i
0b70: 6e 74 20 6d 64 62 2d 64 62 69 2d 6f 70 65 6e 25 nt mdb-dbi-open%
0b80: 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d 74 78 ((txn (* mdb-tx
0b90: 6e 29 29 20 28 6e 61 6d 65 20 73 74 72 69 6e 67 n)) (name string
0ba0: 29 20 28 66 6c 61 67 73 20 75 6e 73 69 67 6e 65 ) (flags unsigne
0bb0: 64 2d 69 6e 74 29 20 28 64 62 69 20 28 2a 20 6d d-int) (dbi (* m
0bc0: 64 62 2d 64 62 69 29 29 29 20 22 6d 64 62 5f 64 db-dbi))) "mdb_d
0bd0: 62 69 5f 6f 70 65 6e 22 29 0a 28 64 65 66 69 6e bi_open").(defin
0be0: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 e-lmdb-func int
0bf0: 6d 64 62 2d 73 74 61 74 20 28 28 74 78 6e 20 28 mdb-stat ((txn (
0c00: 2a 20 6d 64 62 2d 74 78 6e 29 29 20 28 64 62 69 * mdb-txn)) (dbi
0c10: 20 6d 64 62 2d 64 62 69 29 20 28 73 74 61 74 20 mdb-dbi) (stat
0c20: 28 2a 20 6d 64 62 2d 73 74 61 74 2d 74 29 29 29 (* mdb-stat-t)))
0c30: 20 22 6d 64 62 5f 73 74 61 74 22 29 0a 28 64 65 "mdb_stat").(de
0c40: 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 fine-lmdb-func i
0c50: 6e 74 20 6d 64 62 2d 64 62 69 2d 66 6c 61 67 73 nt mdb-dbi-flags
0c60: 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d 74 78 ((txn (* mdb-tx
0c70: 6e 29 29 20 28 64 62 69 20 6d 64 62 2d 64 62 69 n)) (dbi mdb-dbi
0c80: 29 20 28 66 6c 61 67 73 20 28 2a 20 75 6e 73 69 ) (flags (* unsi
0c90: 67 6e 65 64 2d 69 6e 74 29 29 29 20 22 6d 64 62 gned-int))) "mdb
0ca0: 5f 64 62 69 5f 66 6c 61 67 73 22 29 0a 28 64 65 _dbi_flags").(de
0cb0: 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 76 fine-lmdb-func v
0cc0: 6f 69 64 20 6d 64 62 2d 64 62 69 2d 63 6c 6f 73 oid mdb-dbi-clos
0cd0: 65 20 28 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 e ((env (* mdb-e
0ce0: 6e 76 29 29 20 28 64 62 69 20 6d 64 62 2d 64 62 nv)) (dbi mdb-db
0cf0: 69 29 29 20 22 6d 64 62 5f 64 62 69 5f 63 6c 6f i)) "mdb_dbi_clo
0d00: 73 65 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 se").(define-lmd
0d10: 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 64 b-func int mdb-d
0d20: 72 6f 70 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 rop ((txn (* mdb
0d30: 2d 74 78 6e 29 29 20 28 64 62 69 20 6d 64 62 2d -txn)) (dbi mdb-
0d40: 64 62 69 29 20 28 64 65 6c 20 69 6e 74 29 29 20 dbi) (del int))
0d50: 22 6d 64 62 5f 64 72 6f 70 22 29 0a 28 64 65 66 "mdb_drop").(def
0d60: 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e ine-lmdb-func in
0d70: 74 20 6d 64 62 2d 73 65 74 2d 63 6f 6d 70 61 72 t mdb-set-compar
0d80: 65 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d 74 e ((txn (* mdb-t
0d90: 78 6e 29 29 20 28 64 62 69 20 6d 64 62 2d 64 62 xn)) (dbi mdb-db
0da0: 69 29 20 28 63 6d 70 20 76 6f 69 64 2a 29 29 20 i) (cmp void*))
0db0: 22 6d 64 62 5f 73 65 74 5f 63 6f 6d 70 61 72 65 "mdb_set_compare
0dc0: 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d ").(define-lmdb-
0dd0: 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 73 65 74 func int mdb-set
0de0: 2d 64 75 70 73 6f 72 74 20 28 28 74 78 6e 20 28 -dupsort ((txn (
0df0: 2a 20 6d 64 62 2d 74 78 6e 29 29 20 28 64 62 69 * mdb-txn)) (dbi
0e00: 20 6d 64 62 2d 64 62 69 29 20 28 63 6d 70 20 76 mdb-dbi) (cmp v
0e10: 6f 69 64 2a 29 29 20 22 6d 64 62 5f 73 65 74 5f oid*)) "mdb_set_
0e20: 64 75 70 73 6f 72 74 22 29 0a 28 64 65 66 69 6e dupsort").(defin
0e30: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 e-lmdb-func int
0e40: 6d 64 62 2d 73 65 74 2d 72 65 6c 66 75 6e 63 20 mdb-set-relfunc
0e50: 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d 74 78 6e ((txn (* mdb-txn
0e60: 29 29 20 28 64 62 69 20 6d 64 62 2d 64 62 69 29 )) (dbi mdb-dbi)
0e70: 20 28 72 65 6c 20 76 6f 69 64 2a 29 29 20 22 6d (rel void*)) "m
0e80: 64 62 5f 73 65 74 5f 72 65 6c 66 75 6e 63 22 29 db_set_relfunc")
0e90: 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 .(define-lmdb-fu
0ea0: 6e 63 20 69 6e 74 20 6d 64 62 2d 73 65 74 2d 72 nc int mdb-set-r
0eb0: 65 6c 63 74 78 20 28 28 74 78 6e 20 28 2a 20 6d elctx ((txn (* m
0ec0: 64 62 2d 74 78 6e 29 29 20 28 64 62 69 20 6d 64 db-txn)) (dbi md
0ed0: 62 2d 64 62 69 29 20 28 63 74 78 20 76 6f 69 64 b-dbi) (ctx void
0ee0: 2a 29 29 20 22 6d 64 62 5f 73 65 74 5f 72 65 6c *)) "mdb_set_rel
0ef0: 63 74 78 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d ctx").(define-lm
0f00: 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d db-func int mdb-
0f10: 67 65 74 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 get ((txn (* mdb
0f20: 2d 74 78 6e 29 29 20 28 64 62 69 20 6d 64 62 2d -txn)) (dbi mdb-
0f30: 64 62 69 29 20 28 6b 65 79 20 28 2a 20 6d 64 62 dbi) (key (* mdb
0f40: 2d 76 61 6c 29 29 20 28 64 61 74 61 20 28 2a 20 -val)) (data (*
0f50: 6d 64 62 2d 76 61 6c 29 29 29 20 22 6d 64 62 5f mdb-val))) "mdb_
0f60: 67 65 74 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d get").(define-lm
0f70: 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d db-func int mdb-
0f80: 70 75 74 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 put ((txn (* mdb
0f90: 2d 74 78 6e 29 29 20 28 64 62 69 20 6d 64 62 2d -txn)) (dbi mdb-
0fa0: 64 62 69 29 20 28 6b 65 79 20 28 2a 20 6d 64 62 dbi) (key (* mdb
0fb0: 2d 76 61 6c 29 29 20 28 64 61 74 61 20 28 2a 20 -val)) (data (*
0fc0: 6d 64 62 2d 76 61 6c 29 29 20 28 66 6c 61 67 73 mdb-val)) (flags
0fd0: 20 75 6e 73 69 67 6e 65 64 2d 69 6e 74 29 29 20 unsigned-int))
0fe0: 22 6d 64 62 5f 70 75 74 22 29 0a 28 64 65 66 69 "mdb_put").(defi
0ff0: 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 ne-lmdb-func int
1000: 20 6d 64 62 2d 64 65 6c 20 28 28 74 78 6e 20 28 mdb-del ((txn (
1010: 2a 20 6d 64 62 2d 74 78 6e 29 29 20 28 64 62 69 * mdb-txn)) (dbi
1020: 20 6d 64 62 2d 64 62 69 29 20 28 6b 65 79 20 28 mdb-dbi) (key (
1030: 2a 20 6d 64 62 2d 76 61 6c 29 29 20 28 64 61 74 * mdb-val)) (dat
1040: 61 20 28 2a 20 6d 64 62 2d 76 61 6c 29 29 29 20 a (* mdb-val)))
1050: 22 6d 64 62 5f 64 65 6c 22 29 0a 28 64 65 66 69 "mdb_del").(defi
1060: 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 ne-lmdb-func int
1070: 20 6d 64 62 2d 63 75 72 73 6f 72 2d 6f 70 65 6e mdb-cursor-open
1080: 25 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d 74 % ((txn (* mdb-t
1090: 78 6e 29 29 20 28 64 62 69 20 6d 64 62 2d 64 62 xn)) (dbi mdb-db
10a0: 69 29 20 28 63 75 72 73 6f 72 20 76 6f 69 64 2a i) (cursor void*
10b0: 29 29 20 22 6d 64 62 5f 63 75 72 73 6f 72 5f 6f )) "mdb_cursor_o
10c0: 70 65 6e 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d pen").(define-lm
10d0: 64 62 2d 66 75 6e 63 20 76 6f 69 64 20 6d 64 62 db-func void mdb
10e0: 2d 63 75 72 73 6f 72 2d 63 6c 6f 73 65 20 28 28 -cursor-close ((
10f0: 63 75 72 73 6f 72 20 28 2a 20 6d 64 62 2d 63 75 cursor (* mdb-cu
1100: 72 73 6f 72 29 29 29 20 22 6d 64 62 5f 63 75 72 rsor))) "mdb_cur
1110: 73 6f 72 5f 63 6c 6f 73 65 22 29 0a 28 64 65 66 sor_close").(def
1120: 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e ine-lmdb-func in
1130: 74 20 6d 64 62 2d 63 75 72 73 6f 72 2d 72 65 6e t mdb-cursor-ren
1140: 65 77 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 2d ew ((txn (* mdb-
1150: 74 78 6e 29 29 20 28 63 75 72 73 6f 72 20 28 2a txn)) (cursor (*
1160: 20 6d 64 62 2d 63 75 72 73 6f 72 29 29 29 20 22 mdb-cursor))) "
1170: 6d 64 62 5f 63 75 72 73 6f 72 5f 72 65 6e 65 77 mdb_cursor_renew
1180: 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d ").(define-lmdb-
1190: 66 75 6e 63 20 28 2a 20 6d 64 62 2d 74 78 6e 29 func (* mdb-txn)
11a0: 20 6d 64 62 2d 63 75 72 73 6f 72 2d 74 78 6e 20 mdb-cursor-txn
11b0: 28 28 63 75 72 73 6f 72 20 28 2a 20 6d 64 62 2d ((cursor (* mdb-
11c0: 63 75 72 73 6f 72 29 29 29 20 22 6d 64 62 5f 63 cursor))) "mdb_c
11d0: 75 72 73 6f 72 5f 74 78 6e 22 29 0a 28 64 65 66 ursor_txn").(def
11e0: 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 6d 64 ine-lmdb-func md
11f0: 62 2d 64 62 69 20 6d 64 62 2d 63 75 72 73 6f 72 b-dbi mdb-cursor
1200: 2d 64 62 69 20 28 28 63 75 72 73 6f 72 20 28 2a -dbi ((cursor (*
1210: 20 6d 64 62 2d 63 75 72 73 6f 72 29 29 29 20 22 mdb-cursor))) "
1220: 6d 64 62 5f 63 75 72 73 6f 72 5f 64 62 69 22 29 mdb_cursor_dbi")
1230: 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 .(define-lmdb-fu
1240: 6e 63 20 69 6e 74 20 6d 64 62 2d 63 75 72 73 6f nc int mdb-curso
1250: 72 2d 67 65 74 20 28 28 63 75 72 73 6f 72 20 28 r-get ((cursor (
1260: 2a 20 6d 64 62 2d 63 75 72 73 6f 72 29 29 20 28 * mdb-cursor)) (
1270: 6b 65 79 20 28 2a 20 6d 64 62 2d 76 61 6c 29 29 key (* mdb-val))
1280: 20 28 64 61 74 61 20 28 2a 20 6d 64 62 2d 76 61 (data (* mdb-va
1290: 6c 29 29 20 28 6f 70 20 6d 64 62 2d 63 75 72 73 l)) (op mdb-curs
12a0: 6f 72 2d 6f 70 2d 74 29 29 20 22 6d 64 62 5f 63 or-op-t)) "mdb_c
12b0: 75 72 73 6f 72 5f 67 65 74 22 29 0a 28 64 65 66 ursor_get").(def
12c0: 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e ine-lmdb-func in
12d0: 74 20 6d 64 62 2d 63 75 72 73 6f 72 2d 70 75 74 t mdb-cursor-put
12e0: 20 28 28 63 75 72 73 6f 72 20 28 2a 20 6d 64 62 ((cursor (* mdb
12f0: 2d 63 75 72 73 6f 72 29 29 20 28 6b 65 79 20 28 -cursor)) (key (
1300: 2a 20 6d 64 62 2d 76 61 6c 29 29 20 28 64 61 74 * mdb-val)) (dat
1310: 61 20 28 2a 20 6d 64 62 2d 76 61 6c 29 29 20 28 a (* mdb-val)) (
1320: 66 6c 61 67 73 20 75 6e 73 69 67 6e 65 64 2d 69 flags unsigned-i
1330: 6e 74 29 29 20 22 6d 64 62 5f 63 75 72 73 6f 72 nt)) "mdb_cursor
1340: 5f 70 75 74 22 29 0a 28 64 65 66 69 6e 65 2d 6c _put").(define-l
1350: 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 mdb-func int mdb
1360: 2d 63 75 72 73 6f 72 2d 64 65 6c 20 28 28 63 75 -cursor-del ((cu
1370: 72 73 6f 72 20 28 2a 20 6d 64 62 2d 63 75 72 73 rsor (* mdb-curs
1380: 6f 72 29 29 20 28 66 6c 61 67 73 20 75 6e 73 69 or)) (flags unsi
1390: 67 6e 65 64 2d 69 6e 74 29 29 20 22 6d 64 62 5f gned-int)) "mdb_
13a0: 63 75 72 73 6f 72 5f 64 65 6c 22 29 0a 28 64 65 cursor_del").(de
13b0: 66 69 6e 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 fine-lmdb-func i
13c0: 6e 74 20 6d 64 62 2d 63 75 72 73 6f 72 2d 63 6f nt mdb-cursor-co
13d0: 75 6e 74 20 28 28 63 75 72 73 6f 72 20 28 2a 20 unt ((cursor (*
13e0: 6d 64 62 2d 63 75 72 73 6f 72 29 29 20 28 63 6f mdb-cursor)) (co
13f0: 75 6e 74 70 20 28 2a 20 6d 64 62 2d 73 69 7a 65 untp (* mdb-size
1400: 2d 74 29 29 29 20 22 6d 64 62 5f 63 75 72 73 6f -t))) "mdb_curso
1410: 72 5f 63 6f 75 6e 74 22 29 0a 28 64 65 66 69 6e r_count").(defin
1420: 65 2d 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 e-lmdb-func int
1430: 6d 64 62 2d 63 6d 70 20 28 28 74 78 6e 20 28 2a mdb-cmp ((txn (*
1440: 20 6d 64 62 2d 74 78 6e 29 29 20 28 64 62 69 20 mdb-txn)) (dbi
1450: 6d 64 62 2d 64 62 69 29 20 28 61 20 28 2a 20 6d mdb-dbi) (a (* m
1460: 64 62 2d 76 61 6c 29 29 20 28 62 20 28 2a 20 6d db-val)) (b (* m
1470: 64 62 2d 76 61 6c 29 29 29 20 22 6d 64 62 5f 63 db-val))) "mdb_c
1480: 6d 70 22 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 mp").(define-lmd
1490: 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 62 2d 64 b-func int mdb-d
14a0: 63 6d 70 20 28 28 74 78 6e 20 28 2a 20 6d 64 62 cmp ((txn (* mdb
14b0: 2d 74 78 6e 29 29 20 28 64 62 69 20 6d 64 62 2d -txn)) (dbi mdb-
14c0: 64 62 69 29 20 28 61 20 28 2a 20 6d 64 62 2d 76 dbi) (a (* mdb-v
14d0: 61 6c 29 29 20 28 62 20 28 2a 20 6d 64 62 2d 76 al)) (b (* mdb-v
14e0: 61 6c 29 29 29 20 22 6d 64 62 5f 64 63 6d 70 22 al))) "mdb_dcmp"
14f0: 29 0a 28 64 65 66 69 6e 65 2d 6c 6d 64 62 2d 66 ).(define-lmdb-f
1500: 75 6e 63 20 69 6e 74 20 6d 64 62 2d 72 65 61 64 unc int mdb-read
1510: 65 72 2d 6c 69 73 74 20 28 28 65 6e 76 20 28 2a er-list ((env (*
1520: 20 6d 64 62 2d 65 6e 76 29 29 20 28 66 75 6e 63 mdb-env)) (func
1530: 20 76 6f 69 64 2a 29 20 28 63 74 78 20 76 6f 69 void*) (ctx voi
1540: 64 2a 29 29 20 22 6d 64 62 5f 72 65 61 64 65 72 d*)) "mdb_reader
1550: 5f 6c 69 73 74 22 29 0a 28 64 65 66 69 6e 65 2d _list").(define-
1560: 6c 6d 64 62 2d 66 75 6e 63 20 69 6e 74 20 6d 64 lmdb-func int md
1570: 62 2d 72 65 61 64 65 72 2d 63 68 65 63 6b 20 28 b-reader-check (
1580: 28 65 6e 76 20 28 2a 20 6d 64 62 2d 65 6e 76 29 (env (* mdb-env)
1590: 29 20 28 64 65 61 64 20 28 2a 20 69 6e 74 29 29 ) (dead (* int))
15a0: 29 20 22 6d 64 62 5f 72 65 61 64 65 72 5f 63 68 ) "mdb_reader_ch
15b0: 65 63 6b 22 29 0a eck").