[][src]Crate kernel

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.

Modules

callback

Data structure for storing a callback to userspace or kernelspace.

capabilities

Special restricted capabilities.

common

Common operations and types in Tock.

component

Components extend the functionality of the Tock kernel through a simple factory method interface.

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.

introspection

Mechanism for inspecting the status of the kernel.

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

Interface for chips and boards.

process

Support for creating and running userspace applications.

procs
returncode

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

sched

Tock core scheduler.

syscall

Tock syscall number definitions and arch-agnostic interface trait.

tbfheader

Tock Binary Format Header definitions and parsing code.

Macros

create_capability

Create an object with the given capability.

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".

Structs

AppId

Userspace app identifier.

AppPtr

Base type for an AppSlice that holds the raw pointer to the memory region the app shared with the kernel.

AppSlice

Buffer of memory shared from an app to the kernel.

Callback

Type for calling a callback in a process.

Grant
Kernel

Main object for the kernel. Each board will need to create one.

NoClockControl

Helper struct for interfaces that expect clocks, but have no clock control

Private
Shared

Enums

ReturnCode

Standard return errors in Tock.

Statics

NO_CLOCK_CONTROL

Instance of NoClockControl for things that need references to ClockInterface objects

Traits

Chip

Interface for individual MCUs.

ClockInterface

Generic operations that clock-like things are expected to support.

Driver

Drivers implement the three driver-specific system calls: subscribe, command and allow.

Platform

Interface for individual boards.

SysTick

Interface for the system tick timer.