sel4_root_task

Attribute Macro root_task

#[root_task]
Expand description

Declares a function to be the root task’s main function.

For example:

#[root_task]
fn main(bootinfo: &sel4::BootInfo) -> ! {
    todo!()
}

The main function have a signature of the form:

fn<T: Termination>(&sel4::BootInfoPtr) -> T

(See Termination)

This macro takes two optional parameters, whose values can be any expression of type usize:

#[root_task(
    stack_size = <stack_size_expr: usize>,
    heap_size = <heap_size_expr: usize>,
)]
  • stack_size: Declares the size of the initial thread’s stack, in bytes. Note that this includes space for thread-local storage. If absent, DEFAULT_STACK_SIZE will be used.
  • heap_size: Creates a #[global_allocator], backed by a static heap of the specified size. If this parameter is not specified, no #[global_allocator] will be automatically declared, and, unless one is manually declared, heap allocations will result in a link-time error.

Note that, if both parameters are provided, they must appear in the order above.