Module kernel::process [] [src]

Support for creating and running userspace applications.

Reexports

use callback::AppId;
use common::RingBuffer;
use common::Queue;
use common::VolatileCell;
use grant;
use core::mem;
use core::ptr;
use core::slice;
use core::str;
use core::cell::Cell;
use core::fmt::Write;
use core::ptr::read_volatile;
use core::ptr::write_volatile;
use core::ptr::write;
use platform::mpu;
use returncode::ReturnCode;
use syscall::Syscall;
use common::math;

Structs

FunctionCall
LoadResult
PicOption1Fields

PIC fields for kernel provided PIC fixup.

Process
ProcessDebug

State for helping with debugging apps.

StoredRegs
TbfHeaderTlv

The TLV header (T and L).

TbfHeaderV1

Legacy Tock Binary Format header.

TbfHeaderV2

Single header that can contain all parts of a v2 header.

TbfHeaderV2Base

TBF fields that must be present in all v2 headers.

TbfHeaderV2Main

The v2 main section for apps.

TbfHeaderV2WriteableFlashRegion

Writeable flash regions only need an offset and size.

Enums

Error
FaultResponse
IPCType
State
Task
TbfHeader

Type that represents the fields of the Tock Binary Format header.

TbfHeaderTypes

Types in TLV structures for each optional block of the header.

Statics

APP_FAULT
HAVE_WORK
PROCS
SCB_REGISTERS
SYSCALL_FIRED

Functions

get_editable_flash_range

Returns the full address of the start and end of the flash region that the app owns and can write to. This includes the app's code and data and any padding at the end of the app. It does not include the TBF header, or any space that the kernel is using for any potential bookkeeping.

ipsr_isr_number_to_str
load

Loads the process into memory

load_processes

Helper function to load processes from flash into an array of active processes. This is the default template for loading processes, but a board is able to create its own load_processes() function and use that instead.

parse_and_validate_tbf_header

Converts a pointer to memory to a TbfHeader struct

processes_blocked
schedule
switch_to_user