Hex Artifact Content
Not logged in

Artifact 589b9e8c2b41fe189b07a2b12ff12271b9df0fa5:


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").