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.

Re-exports

extern crate core;
extern crate compiler_builtins;
extern crate tock_cells;
extern crate tock_regs;
use core::prelude::v1::*;

Modules

callback

Data structure for storing a callback to userspace or kernelspace.

common

Common operations and types in Tock.

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

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.

tbfheader

Tock Binary Format Header definitions and parsing code.

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

Structs

AppId

Userspace app identifier.

AppPtr
AppSlice
Callback

Wrapper around a function pointer.

Grant
NoClockControl

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

Private
Shared

Enums

ReturnCode

Statics

APP_FAULT

This is used in the hardfault handler.

NO_CLOCK_CONTROL

Instance of NoClockControl for things that need references to ClockInterface objects

SYSCALL_FIRED

This is used in the hardfault handler.

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.

Functions

kernel_loop

Main loop.