mirage/ocaml-evtchn

Name: ocaml-evtchn

Owner: MirageOS

Description: Xen event channel interface for Mirage

Created: 2014-01-21 15:49:22.0

Updated: 2018-03-01 07:02:46.0

Pushed: 2017-05-30 12:03:53.0

Homepage: null

Size: 135

Language: OCaml

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

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.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.