package mirage

  1. Overview
  2. Docs

Configuration keys.

Mirage keys.

Release 3.3.1

module Arg = Mirage_key.Arg
include Functoria.KEY with module Arg := Arg
type 'a value = 'a Functoria_key.value
val pure : 'a -> 'a value
val ($) : ('a -> 'b) value -> 'a value -> 'b value
val map : ('a -> 'b) -> 'a value -> 'b value
val if_ : bool value -> 'a -> 'a -> 'a value
val match_ : 'a value -> ('a -> 'b) -> 'b value
val default : 'a value -> 'a
type 'a key = 'a Functoria_key.key
val create : string -> 'a Arg.t -> 'a key
val value : 'a key -> 'a value
type t = Functoria_key.t
module Set = Mirage_key.Set
val abstract : 'a key -> t
val equal : t -> t -> bool
val hash : t -> int
val compare : t -> t -> int
val pp : t Fmt.t
val of_deps : Set.t -> unit value
val deps : 'a value -> Set.t
val pp_deps : 'a value Fmt.t
val is_runtime : t -> bool
val is_configure : t -> bool
val filter_stage : Arg.stage -> Set.t -> Set.t
module Alias = Mirage_key.Alias
val alias : string -> 'a Alias.t -> 'a key
val aliases : t -> Set.t
val name : t -> string
type context = Functoria_key.context
val dump_context : context Fmt.t
val empty_context : context
val merge_context : default:context -> context -> context
val add_to_context : 'a key -> 'a -> context -> context
val context : ?stage:Arg.stage -> with_required:bool -> Set.t -> context Cmdliner.Term.t
val mem : context -> 'a value -> bool
val peek : context -> 'a value -> 'a option
val eval : context -> 'a value -> 'a
val get : context -> 'a key -> 'a
val pps : context -> Set.t Fmt.t
val ocaml_name : t -> string
val serialize_call : t Fmt.t
val serialize : context -> t Fmt.t
val module_name : string
type mode = [
  1. | `Unix
  2. | `Xen
  3. | `Qubes
  4. | `MacOSX
  5. | `Virtio
  6. | `Hvt
  7. | `Muen
  8. | `Genode
]

Mirage keys

val target : mode key

-t TARGET: Key setting the configuration mode for the current project. Is one of "unix", "macosx", "xen", "qubes", "virtio", "hvt", "muen" or "genode".

val pp_target : mode Fmt.t

Pretty printer for the mode.

val is_unix : bool value

Is true iff the target key is a UNIXish system ("unix" or "macosx").

val warn_error : bool key

--warn-error. Enable -warn-error for OCaml sources. Set to false by default, but might might enabled by default in later releases.

val target_debug : bool key

-g. Enables target-specific support for debugging.

val no_depext : bool key

--no-depext. Disables opam depext in depend target of generated Makefile.

val tracing_size : int -> int key

--tracing-size: Key setting the tracing ring buffer size.

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

val kv_ro : ?group:string -> unit -> [ `Archive | `Crunch | `Direct | `Fat ] key

The type of key value store. Is one of "archive", "crunch", "direct", or "fat".

val block : ?group:string -> unit -> [ `XenstoreId | `BlockFile | `Ramdisk ] key

Block device keys

PRNG key

val prng : ?group:string -> unit -> [ `Stdlib | `Nocrypto ] key

The type of pseudo random number generator to use by default. Is one of "stdlib" (lagged Fibonacci), or "nocrypto" (Fortuna).

Stack keys

val dhcp : ?group:string -> unit -> bool key

Enable dhcp. Is either true or false.

val net : ?group:string -> unit -> [ `Direct | `Socket ] key

The type of stack. Is either "direct" or "socket".

Network keys

val interface : ?group:string -> string -> string key

A network interface.

module V4 = Mirage_key.V4

Ipv4 keys.

module V6 = Mirage_key.V6

Ipv6 keys.

val syslog : Ipaddr.V4.t option -> Ipaddr.V4.t option key

The address to send syslog frames to.

val syslog_port : int option -> int option key

The port to send syslog frames to.

val syslog_hostname : string -> string key

The hostname to use in syslog frames.

OCaml

Innovation. Community. Security.