Crate kernel [] [src]

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.

Most unsafe code is in this kernel crate.

Reexports

extern crate core as core;
use core::prelude::v1::*;
pub use callback::AppId;
pub use callback::Callback;
pub use driver::Driver;
pub use grant::Grant;
pub use mem::AppPtr;
pub use mem::AppSlice;
pub use mem::Private;
pub use mem::Shared;
pub use process::Process;
pub use process::State;
pub use returncode::ReturnCode;

Modules

callback

Data structure for storing a callback to userspace or kernelspace.

common

Common operations in the Tock OS.

debug

Support for in-kernel debugging.

driver

System call interface for userspace applications.

grant

Data structure to store a list of userspace applications.

hil

Public traits for interfaces between Tock components.

ipc

Inter-process communication mechanism for Tock.

mem

Data structure for passing application memory to the kernel.

memop

Implementation of the MEMOP family of syscalls.

mpu

Interface for configuring the Memory Protection Unit.

platform
process

Support for creating and running userspace applications.

returncode

Standard return type for invoking operations, returning success or an error code.

sched

Tock core scheduler.

support

A bare-metal library supplying functions rustc may lower code to.

syscall

Tock syscall number definitions.

systick

Interface system tick timer.

Macros

debug

In-kernel println() debugging.

debug_gpio

In-kernel gpio debugging, accepts any GPIO HIL method

debug_verbose

In-kernel println() debugging with filename and line numbers.

register_bitfields

Define register types and fields.

register_bitmasks

Helper macro for defining register fields.

static_init

Allocates a global array of static size to initialize data structures.

storage_volume

Allocates space in the kernel image for on-chip non-volatile storage. Storage volumes are placed after the kernel code and before relocated variables (those copied into RAM on boot). They are placed in a section called ".storage".

Traits

Chip

Interface for individual MCUs.

Platform

Interface for individual boards.

SysTick

Interface for the system tick timer.

Functions

main

Main loop.