Trait r3::kernel::traits::KernelBase

source ·
pub unsafe trait KernelBase: Debug + Copy + Sized + 'static {
    type RawDebugPrinter: Debug + Send + Sync;
    type RawTaskId: Id;

    const RAW_SUPPORTED_QUEUE_ORDERS: &'static [Option<QueueOrderKind>] = &[];
Show 20 methods // Required methods fn raw_debug() -> Self::RawDebugPrinter; fn raw_acquire_cpu_lock() -> Result<(), CpuLockError>; unsafe fn raw_release_cpu_lock() -> Result<(), CpuLockError>; fn raw_has_cpu_lock() -> bool; unsafe fn raw_unboost_priority() -> Result<(), BoostPriorityError>; fn raw_is_priority_boost_active() -> bool; fn raw_is_task_context() -> bool; fn raw_is_interrupt_context() -> bool; fn raw_is_boot_complete() -> bool; fn raw_set_time(time: Time) -> Result<(), TimeError>; unsafe fn raw_exit_task() -> Result<!, ExitTaskError>; fn raw_park() -> Result<(), ParkError>; fn raw_park_timeout(timeout: Duration) -> Result<(), ParkTimeoutError>; fn raw_sleep(duration: Duration) -> Result<(), SleepError>; fn raw_task_current() -> Result<Self::RawTaskId, GetCurrentTaskError>; unsafe fn raw_task_activate( this: Self::RawTaskId ) -> Result<(), ActivateTaskError>; unsafe fn raw_task_interrupt( this: Self::RawTaskId ) -> Result<(), InterruptTaskError>; unsafe fn raw_task_unpark_exact( this: Self::RawTaskId ) -> Result<(), UnparkExactError>; unsafe fn raw_task_priority( this: Self::RawTaskId ) -> Result<usize, GetTaskPriorityError>; unsafe fn raw_task_effective_priority( this: Self::RawTaskId ) -> Result<usize, GetTaskPriorityError>;
}
Expand description

Provides access to the minimal API exposed by a kernel.

Safety

See the Safety section of the module documentation.

Required Associated Types§

source

type RawDebugPrinter: Debug + Send + Sync

source

type RawTaskId: Id

The type to identify tasks.

Provided Associated Constants§

source

const RAW_SUPPORTED_QUEUE_ORDERS: &'static [Option<QueueOrderKind>] = &[]

Used by QueueOrder::is_supported.

None elements don’t match any values of QueueOrder. This might be useful for conditionally enabling some of them.

The default value is an empty slice.

Required Methods§

source

fn raw_debug() -> Self::RawDebugPrinter

Implements Kernel::debug.

source

fn raw_acquire_cpu_lock() -> Result<(), CpuLockError>

source

unsafe fn raw_release_cpu_lock() -> Result<(), CpuLockError>

Implements Kernel::release_cpu_lock.

Safety

See the Safety section of Kernel::release_cpu_lock’s documentation.

source

fn raw_has_cpu_lock() -> bool

Return a flag indicating whether CPU Lock is currently active.

source

unsafe fn raw_unboost_priority() -> Result<(), BoostPriorityError>

Implements Kernel::unboost_priority.

Safety

See the Safety section of Kernel::unboost_priority’s documentation.

source

fn raw_is_priority_boost_active() -> bool

source

fn raw_is_task_context() -> bool

source

fn raw_is_interrupt_context() -> bool

source

fn raw_is_boot_complete() -> bool

source

fn raw_set_time(time: Time) -> Result<(), TimeError>

Implements Kernel::set_time.

source

unsafe fn raw_exit_task() -> Result<!, ExitTaskError>

Implements Kernel::exit_task.

Safety

See the Safety section of Kernel::exit_task’s documentation.

source

fn raw_park() -> Result<(), ParkError>

Implements Kernel::park.

source

fn raw_park_timeout(timeout: Duration) -> Result<(), ParkTimeoutError>

source

fn raw_sleep(duration: Duration) -> Result<(), SleepError>

Implements Kernel::sleep.

source

fn raw_task_current() -> Result<Self::RawTaskId, GetCurrentTaskError>

Get the current task.

source

unsafe fn raw_task_activate( this: Self::RawTaskId ) -> Result<(), ActivateTaskError>

Implements Task::activate.

Safety

See the Safety section of the module documentation.

source

unsafe fn raw_task_interrupt( this: Self::RawTaskId ) -> Result<(), InterruptTaskError>

Implements Task::interrupt.

Safety

See the Safety section of the module documentation.

source

unsafe fn raw_task_unpark_exact( this: Self::RawTaskId ) -> Result<(), UnparkExactError>

Implements Task::unpark_exact.

Safety

See the Safety section of the module documentation.

source

unsafe fn raw_task_priority( this: Self::RawTaskId ) -> Result<usize, GetTaskPriorityError>

Implements Task::priority.

Safety

See the Safety section of the module documentation.

source

unsafe fn raw_task_effective_priority( this: Self::RawTaskId ) -> Result<usize, GetTaskPriorityError>

Implements Task::effective_priority.

Safety

See the Safety section of the module documentation.

Implementors§