package mirage-runtime

  1. Overview
  2. Docs

Module Mirage_runtimeSource

Mirage runtime utilities.

Release v4.7.0

Log thresholds

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

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

Sourceval 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.

Sourceval logs : log_threshold list Cmdliner.Term.t

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

Sourcemodule Conv : sig ... end
Sourceval s_net : string

Manpage sections

s_net is used for network options.

Sourceval s_disk : string

s_disk is used for disk options.

Sourceval s_log : string

s_log is used for logging and monitoring options.

Sourceval s_ocaml : string

s_ocaml is used for OCaml runtime keys.

OCaml runtime keys

The OCaml runtime is usually configurable via the OCAMLRUNPARAM environment variable. We provide boot parameters covering these options.

Sourceval backtrace : bool Cmdliner.Term.t

--backtrace: Output a backtrace if an uncaught exception terminated the unikernel.

Sourceval randomize_hashtables : bool Cmdliner.Term.t

--randomize-hashtables: Randomize all hash tables.

GC control

The OCaml garbage collector can be configured, as described in detail in GC control.

The following Term.ts allow boot time configuration.

Sourceval allocation_policy : [ `Next_fit | `First_fit | `Best_fit ] Cmdliner.Term.t
Sourceval minor_heap_size : int option Cmdliner.Term.t
Sourceval major_heap_increment : int option Cmdliner.Term.t
Sourceval space_overhead : int option Cmdliner.Term.t
Sourceval max_space_overhead : int option Cmdliner.Term.t
Sourceval gc_verbosity : int option Cmdliner.Term.t
Sourceval gc_window_size : int option Cmdliner.Term.t
Sourceval custom_major_ratio : int option Cmdliner.Term.t
Sourceval custom_minor_ratio : int option Cmdliner.Term.t
Sourceval custom_minor_max_size : int option Cmdliner.Term.t

Blocks

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

Startup delay

Sourceval 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.

Registering scheduler hooks

Sourceval 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.

Sourceval 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.

Sourceval 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.

Sourceval run_exit_hooks : unit -> unit Lwt.t

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

Sourceval run_enter_iter_hooks : unit -> unit

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

Sourceval run_leave_iter_hooks : unit -> unit

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

Exit Codes

Sourceval argument_error : int

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

Sourceval help_version : int

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

/

Sourceval with_argv : unit Cmdliner.Term.t list -> string -> string array -> unit
Sourceval runtime_args : unit -> unit Cmdliner.Term.t list
Sourceval register : 'a Cmdliner.Term.t -> unit -> 'a