Module Mirage_runtime

Mirage runtime utilities.

Release v4.10.1

Log thresholds

type log_threshold = [ `All | `Src of string ] * Logs.level option

The type for log threshold. A log level of None disables logging.

val set_level : default:Logs.level option -> log_threshold list -> unit

set_level ~default l set the log levels needed to have all of the log sources appearing in l be used.

val logs : log_threshold list Cmdliner.Term.t

logs is a command-liner term for setting the log_threshold.

Command-line converters

module Conv : sig ... end

Manpage sections

val s_net : string

s_net is used for network options.

val s_disk : string

s_disk is used for disk options.

val s_log : string

s_log is used for logging and monitoring options.

val s_he : string

s_he is used for happy eyeballs options.

val s_dns : string

s_dns is used for DNS options.

val s_ssh : string

s_ssh is used for SSH options.

val s_tls : string

s_tls is used for TLS options.

val s_http : string

s_http is used for HTTP options.

Blocks

val disk : string Cmdliner.Term.t
val analyze : bool Cmdliner.Term.t

Startup delay

val delay : int Cmdliner.Term.t

The initial delay, specified in seconds, before a unikernel starting up. Defaults to 0. Useful for tenders and environments that take some time to bring devices up.

Name

val name_k : string option Cmdliner.Term.t

The name key.

val name : unit -> string

The current name of the unikernel. This is expected to be the same during the lifetime of an unikernel (but there's no guarantee since it can be modified).

Registering scheduler hooks

val at_exit : (unit -> unit Lwt.t) -> unit

at_exit hook registers hook, which will be executed before the unikernel exits. The first hook registered will be executed last.

val at_enter_iter : (unit -> unit) -> unit

at_enter_iter hook registers hook to be executed at the beginning of each event loop iteration. The first hook registered will be executed last.

If hook calls at_enter_iter recursively, the new hook will run only on the next event loop iteration.

val at_leave_iter : (unit -> unit) -> unit

at_leave_iter hook registers hook to be executed at the end of each event loop iteration. See at_enter_iter for details.

Running hooks

This is mainly for for developers implementing new targets.

val run_exit_hooks : unit -> unit Lwt.t

run_exit_hooks () calls the sequence of hooks registered with at_exit in sequence.

val run_enter_iter_hooks : unit -> unit

run_enter_iter_hooks () calls the sequence of hooks registered with at_enter_iter in sequence.

val run_leave_iter_hooks : unit -> unit

run_leave_iter_hooks () call the sequence of hooks registered with at_leave_iter in sequence.

Exit Codes

val argument_error : int

argument_error is the exit code used for argument parsing errors: 64.

val help_version : int

help_version is the exit code used when help/version is used: 63.

Runtime Arguments

val register_arg : 'a Cmdliner.Term.t -> unit -> 'a

register_arg term registers term to be evaluated at boot time. An example is: let hello = register_arg <myterm> (at the toplevel of the unikernel), and in the unikernel code Logs.info (fun m -> m "hello argument is: %s" (hello ())).