Hal

Trait Hal 

Source
pub trait Hal: Mmu {
Show 23 methods // Required methods fn kstack_size() -> usize; fn cpu_id() -> usize; fn cpu_context_size() -> usize; fn boot_region_by_index(index: usize) -> Option<BootRegion>; unsafe fn get_current_tcb_addr() -> *mut u8; unsafe fn set_current_tcb_addr(addr: *mut u8); unsafe fn cpu_context_sp(ctx_ptr: *const u8) -> usize; unsafe fn cpu_context_set_sp(ctx_ptr: *const u8, sp: usize); unsafe fn cpu_context_set_pc(ctx_ptr: *const u8, pc: usize); unsafe fn cpu_context_switch(prev_tcb: *mut u8, next_tcb: *mut u8); fn wait_for_interrupt(); fn irq_init_current_cpu(id: DeviceId); fn irq_ack() -> IrqId; fn irq_eoi(irq: IrqId); fn irq_all_enable(); fn irq_all_disable(); fn irq_all_is_enabled() -> bool; fn irq_enable(config: IrqParam); fn irq_disable(id: DeviceId, irq: IrqId); fn shutdown() -> !; fn debug_put(b: u8); fn dcache_range(op: CacheOp, addr: usize, size: usize); fn driver_registers() -> DriverRegisterSlice;
}

Required Methods§

Source

fn kstack_size() -> usize

Source

fn cpu_id() -> usize

Source

fn cpu_context_size() -> usize

Source

fn boot_region_by_index(index: usize) -> Option<BootRegion>

Source

unsafe fn get_current_tcb_addr() -> *mut u8

§Safety
Source

unsafe fn set_current_tcb_addr(addr: *mut u8)

§Safety
Source

unsafe fn cpu_context_sp(ctx_ptr: *const u8) -> usize

§Safety

ctx_ptr 是有效的上下文指针

Source

unsafe fn cpu_context_set_sp(ctx_ptr: *const u8, sp: usize)

§Safety

ctx_ptr 是有效的上下文指针

Source

unsafe fn cpu_context_set_pc(ctx_ptr: *const u8, pc: usize)

§Safety

ctx_ptr 是有效的上下文指针

Source

unsafe fn cpu_context_switch(prev_tcb: *mut u8, next_tcb: *mut u8)

§Safety
Source

fn wait_for_interrupt()

Source

fn irq_init_current_cpu(id: DeviceId)

Source

fn irq_ack() -> IrqId

Source

fn irq_eoi(irq: IrqId)

Source

fn irq_all_enable()

Source

fn irq_all_disable()

Source

fn irq_all_is_enabled() -> bool

Source

fn irq_enable(config: IrqParam)

Source

fn irq_disable(id: DeviceId, irq: IrqId)

Source

fn shutdown() -> !

Source

fn debug_put(b: u8)

Source

fn dcache_range(op: CacheOp, addr: usize, size: usize)

Source

fn driver_registers() -> DriverRegisterSlice

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§