package mirage
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=f804161872de6cf20699364f09d03370ed06aafffb12f1d586190832c73a194d
sha512=75c1c1cac4c6f862c0055381c7ced123785193234b40da8a8e238cb289cba1a4494378587c4edf2ed872aee7fbfc756f84087941c1037ac19cbd1733ff6cca6a
doc/mirage.key/Mirage_key/index.html
Module Mirage_keySource
Mirage keys.
Release v4.0.0
include Functoria.KEY with module Arg := Arg
Configuration Keys
The type for configuration keys. Keys are used to retrieve the cross-stage values they are holding (by indexing contents in the autogenerated Bootgen_var module) but also to parameterize the choice of module implementation.
create n a is the key named n whose contents is determined by parsing the command-line argument a.
Configuration Values
The type for configure-time and run-time values. Values are either pure or obtained by composing other values. Values might have data dependencies, which form an (implicit) directed and acyclic graph that need to be evaluated.
f $ v is is the value resulting from the application of f'value to v's value. $ is the usual app operator for applicative functor.
Abstract Keys
The type for abstract keys.
Stages
filter_stage s ks is ks but with only keys available at stage s.
Alias allows to define virtual keys in terms of other keys at configuration time only.
Parsing context
The type for values holding parsing context.
context ~with_required ks is a Cmdliner term that evaluates into a parsing context for command-line arguments. If with_required is false, it will only produce optional keys.
mem c v is true iff all the dependencies of v have been evaluated.
eval c v evaluates v in c's context, using default values if necessary.
get c k is k's value in c's context. If k is not present in c, it is k's default value.
find c k is k's value in c's context or None if k is not present in c.
pps c fmt ks prints the keys ks using the context c to get their value.
Code Serialization
serialize_call fmt k outputs Key_gen.n () to fmt, where n is k's OCaml name.
Mirage keys
-t TARGET: Key setting the configuration mode for the current project. Is one of "unix", "macosx", "xen", "qubes", "virtio", "hvt", "muen", "genode" or "spt".
OCaml runtime keys
The OCaml runtime is usually configurable via the OCAMLRUNPARAM environment variable. We provide boot parameters covering these options.
--backtrace: Output a backtrace if an uncaught exception terminated the unikernel.
GC control
The OCaml garbage collector can be configured, as described in detail in GC control.
The following keys allow boot time configuration.
Generic keys
Some keys have a group optional argument. This group argument allows to give several keys a prefix.
For example, if we have two ip stacks, one external and one internal, We can use the group option to name them in and out. This way, the available keys will be --in-ip and --out-ip.
If a key has another, non-optional argument. It is the default value.
Keys are always named the same as their command line option.
File system keys
The type of key value store. Is one of "archive", "crunch", "direct", or "fat".
Block device keys
PRNG key
The type of pseudo random number generator to use by default.
Stack keys
The type of stack. Is either "direct" or "socket".
Network keys
The address of the DNS resolver to use.