package mirage
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
The MirageOS library operating system
Install
dune-project
Dependency
Authors
Maintainers
Sources
mirage-4.0.0.tbz
sha256=f804161872de6cf20699364f09d03370ed06aafffb12f1d586190832c73a194d
sha512=75c1c1cac4c6f862c0055381c7ced123785193234b40da8a8e238cb289cba1a4494378587c4edf2ed872aee7fbfc756f84087941c1037ac19cbd1733ff6cca6a
doc/src/mirage.impl/mirage_impl_kv.ml.html
Source file mirage_impl_kv.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77open Functoria open Astring module Key = Mirage_key type ro = RO let ro = Type.v RO let crunch dirname = let is_valid = function | '0' .. '9' | 'a' .. 'z' | 'A' .. 'Z' -> true | _ -> false in let modname = String.filter is_valid dirname in let name = "Static_" ^ String.Ascii.lowercase modname in let packages = [ package ~min:"3.0.0" ~max:"4.0.0" "mirage-kv-mem"; package ~min:"3.1.0" ~max:"4.0.0" ~build:true "crunch"; ] in let connect _ modname _ = Fmt.str "%s.connect ()" modname in let dune _i = let dir = Fpath.(v dirname) in let file ext = Fpath.(v (String.Ascii.lowercase name) + ext) in let ml = file "ml" in let mli = file "mli" in let dune = Dune.stanzaf {| (rule (targets %a %a) (deps (source_tree %a)) (action (run ocaml-crunch -o %a %a))) |} Fpath.pp ml Fpath.pp mli Fpath.pp dir Fpath.pp ml Fpath.pp dir in [ dune ] in impl ~packages ~connect ~dune name ro let direct_kv_ro dirname = let packages = [ package ~min:"2.1.0" ~max:"3.0.0" "mirage-kv-unix" ] in let connect _ modname _names = Fmt.str "%s.connect \"%s\"" modname dirname in impl ~packages ~connect "Mirage_kv_unix" ro let direct_kv_ro dirname = match_impl Key.(value target) [ (`Xen, crunch dirname); (`Qubes, crunch dirname); (`Virtio, crunch dirname); (`Hvt, crunch dirname); (`Spt, crunch dirname); (`Muen, crunch dirname); (`Genode, crunch dirname); ] ~default:(direct_kv_ro dirname) type rw = RW let rw = Type.v RW let direct_kv_rw dirname = let packages = [ package ~min:"2.1.0" ~max:"3.0.0" "mirage-kv-unix" ] in let connect _ modname _names = Fmt.str "%s.connect \"%s\"" modname dirname in impl ~packages ~connect "Mirage_kv_unix" rw let mem_kv_rw_config = let packages = [ package ~min:"3.0.0" ~max:"4.0.0" "mirage-kv-mem" ] in let connect _ modname _names = Fmt.str "%s.connect ()" modname in impl ~packages ~connect "Mirage_kv_mem.Make" (Mirage_impl_pclock.pclock @-> rw) let mem_kv_rw ?(clock = Mirage_impl_pclock.default_posix_clock) () = mem_kv_rw_config $ clock
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>