package xen-evtchn

  1. Overview
  2. Docs
Xen event channel interface for MirageOS

Install

Dune Dependency

Authors

Maintainers

Sources

xen-evtchn-v2.1.0.tbz
sha256=37d49a277ec6319e74a91fb3d99ef318052f84c4a92a59d39b8d51085387fb3f
md5=5df050f2aaca4cc9d006042633277dbd

Description

Event channels are the Xen equivalent of interrupts, used to signal when data (or space) is available for processing. There are 2 distinct implementations:

  1. a Xen shared-memory + hypercall protocol for kernelspace
  2. a binding to a set of libxc functions which access /dev/xen/evtchn for userspace (see xen-evtchn-unix opam package).

Tags

org:mirage org:xapi-project

Published: 13 Feb 2019

README

ocaml-evtchn

Xen event channel interface for Mirage.

Event channels are the Xen equivalent of interrupts, used to signal when data (or space) is available for processing. There are 2 distinct implementations:

  1. a Xen shared-memory + hypercall protocol for kernelspace

  2. a binding to a set of libxc functions which access /dev/xen/evtchn for userspace

Implementation notes

The mirage-platform/xen tree contains a custom set of C stubs which implements the simple parts of the protocol (eg mask, unmask, notify). These stubs are referenced from the Eventchn module. The choice of stubs (userspace or kernelspace) is performed at binary link-time by the 'mirage' command-line tool (or manually), avoiding the need for another functor for these cases.

The more 'Activations' signature which has blocking functions is implemented in OCaml in both the mirage-platform/xen tree (Activations) and here (Unix_activations). Libraries must be functorised and the functor must be instantiated in the final program.

Dependencies (5)

  1. cmdliner
  2. lwt-dllist
  3. lwt
  4. dune >= "1.0"
  5. ocaml >= "4.03.0"

Dev Dependencies

None

Used by (9)

  1. mirage-console-xen >= "2.2.0" & < "4.0.0"
  2. mirage-console-xen-backend < "4.0.0"
  3. mirage-entropy-xen = "0.2.0"
  4. mirage-qubes < "0.9.0"
  5. mirage-xen >= "1.1.0" & < "6.0.0"
  6. vchan-unix >= "6.0.1"
  7. xen-disk >= "1.2.1"
  8. xen-evtchn-unix >= "2.1.0"
  9. xentropyd

Conflicts

None

OCaml

Innovation. Community. Security.