Module type
Class type

Deprecated MirageOS signatures, use them directly

  • deprecated This module will be removed from MirageOS 4.0. Please use the individual signatures (mirage-net / mirage-block / ...) directly.
include module type of struct include Mirage_types end

General conventions

  • errors which application programmers are expected to handle (e.g. connection refused or end of file) are encoded as result types where Ok x means the operation was succesful and returns x and where Error e means the operation has failed with error e. The error e uses the Rresult.R.msg type for the most general error message, and possibly more specific ones depending on the interface.
  • errors which represent programming errors such as assertion failures or illegal arguments are encoded as exceptions. The application may attempt to catch exceptions and recover or simply let the exception propagate and crash the application. If the application crashes then the runtime system should output diagnostics and abort.
  • operations which perform I/O return values of type +'a io which allow the application to either wait for the I/O to be completed or leave it running asynchronously. If the I/O completes with an error then the operation may have completely failed, partially succeeded or even completely succeeded (e.g. it may only be a confirmation message in a network protocol which was missed): see individual API descriptions for details.

Release v3.10.8

module type DEVICE = Mirage_types.DEVICE

Time and clock devices

module type TIME = Mirage_types.TIME
module type MCLOCK = Mirage_types.MCLOCK
module type PCLOCK = Mirage_types.PCLOCK
module type RANDOM = Mirage_types.RANDOM

Connection between endpoints

module type FLOW = Mirage_types.FLOW


module type CONSOLE = Mirage_types.CONSOLE

Sector-addressible block devices

module type BLOCK = Mirage_types.BLOCK
module type NETWORK = Mirage_types.NETWORK
module type ETHERNET = Mirage_types.ETHERNET
module type IP = Mirage_types.IP
module type ARP = Mirage_types.ARP
module type IPV4 = Mirage_types.IPV4
module type IPV6 = Mirage_types.IPV6
module type ICMP = Mirage_types.ICMP
module type ICMPV4 = Mirage_types.ICMPV4
module type UDP = Mirage_types.UDP
module type UDPV4 = Mirage_types.UDPV4
module type UDPV6 = Mirage_types.UDPV6
module type TCP = Mirage_types.TCP
module type TCPV4 = Mirage_types.TCPV4
module type TCPV6 = Mirage_types.TCPV6
module type STACKV4 = Mirage_types.STACKV4
module type CHANNEL = Mirage_types.CHANNEL

Static Key/value store

module type KV_RO = Mirage_types.KV_RO
module type KV_RW = Mirage_types.KV_RW

Filesystem devices

module type FS = Mirage_types.FS