package mirage
Source file mirage_impl_console.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 35open Functoria module Key = Mirage_key type console = CONSOLE let console = Type.v CONSOLE let connect str _ m _ = Fmt.str "%s.connect %S" m str let console_unix str = let packages = [ package ~min:"5.1.0" ~max:"6.0.0" "mirage-console-unix" ] in impl ~packages ~connect:(connect str) "Console_unix" console let console_xen str = let packages = [ package ~min:"5.1.0" ~max:"6.0.0" "mirage-console-xen" ] in impl ~packages ~connect:(connect str) "Console_xen" console let console_solo5 str = let packages = [ package ~min:"0.8.0" ~max:"0.9.0" "mirage-console-solo5" ] in impl ~packages ~connect:(connect str) "Console_solo5" console let custom_console str = match_impl Key.(value target) [ (`Xen, console_xen str); (`Qubes, console_xen str); (`Virtio, console_solo5 str); (`Hvt, console_solo5 str); (`Spt, console_solo5 str); (`Muen, console_solo5 str); (`Genode, console_solo5 str); ] ~default:(console_unix str) let default_console = custom_console "0"