Crate sel4_microkit

source ·
Expand description

A foundation for pure-Rust seL4 Microkit protection domains.

See the seL4 Microkit manual for non-Rust-specific documentation about the seL4 Microkit.

See the demo for a concrete example of this crate in action.

This crate depends, at build time, on the libsel4 headers. It requires that either $SEL4_INCLUDE_DIRS contains a colon-separated list of include paths for the libsel4 headers, or that $SEL4_PREFIX is set, in which case $SEL4_PREFIX/libsel4/include is used.

The microkit tool expects protection domain binaries to expose a few symbols. All protection domains must contain the symbol __sel4_ipc_buffer_obj. Furthermore, for protection domains with memory regions, the microkit tool injects the addresses of these memory regions at build time by patching designated symbols. The *-sel4-microkit{,-minimal}.json rustc target specs distributed as part of the rust-sel4 project provide __sel4_ipc_buffer_obj, and the memory_region_symbol macro provides a conveneint way to declare memory region address symbols.

Use the protection_domain macro to declare the initialization function, stack size, and, optionally, heap and heap size.

Modules§

Macros§

Structs§

Enums§

Traits§

  • Trait for the application-specific part of a protection domain’s main loop.

Functions§

Type Aliases§

Attribute Macros§

  • Declares the initialization function, stack size, and, optionally, heap and heap size.