Core Tock Kernel
The kernel crate implements the core features of Tock as well as shared code that many chips, capsules, and boards use. It also holds the Hardware Interface Layer (HIL) definitions.
unsafe code is in this kernel crate.
Special restricted capabilities.
Common operations and types in Tock.
Components extend the functionality of the Tock kernel through a simple factory method interface.
Support for in-kernel debugging.
Public traits for interfaces between Tock components.
Mechanism for inspecting the status of the kernel.
Inter-process communication mechanism for Tock.
Interface for configuring the Memory Protection Unit.
Publicly available process-related objects.
Tock syscall number definitions and arch-agnostic interface trait.
Count the number of passed expressions. Useful for constructing variable sized arrays in other macros. Taken from the Little Book of Rust Macros
Create an object with the given capability.
This macro prints a new line to an internal ring buffer, the contents of
which are only flushed with
This macro flushes the contents of the debug queue into the regular debug output.
In-kernel gpio debugging, accepts any GPIO HIL method
Allocates a statically-sized global array of memory for data structures but does not initialize the memory.
Allocates a statically-sized global array of memory and initializes the memory for a particular data structure.
This macro is deprecated. You should migrate to using
Allocates space in the kernel image for on-chip non-volatile storage.
Userspace app identifier.
Buffer of memory shared from an app to the kernel.
Type for calling a callback in a process.
Region of process memory reserved for the kernel.
Main object for the kernel. Each board will need to create one.
Helper struct for interfaces that expect clocks, but have no clock control.
Type for specifying an AppSlice is hidden from the kernel.
Type for specifying an AppSlice is shared with the kernel.
Standard return errors in Tock.
Instance of NoClockControl for things that need references to
Interface for individual MCUs.
Generic operations that clock-like things are expected to support.
Interface for individual boards.
Interface for the system tick timer.