|
SimpleKernel 1.17.0
|
中断子系统抽象基类 More...
#include <interrupt_base.h>


Public Types | |
| using | InterruptDelegate = etl::delegate< uint64_t(uint64_t, cpu_io::TrapContext *)> |
| 类型安全的中断处理委托 | |
Public Member Functions | |
| virtual auto | Do (uint64_t, cpu_io::TrapContext *) -> void=0 |
| 执行中断处理 | |
| virtual auto | RegisterInterruptFunc (uint64_t cause, InterruptDelegate func) -> void=0 |
| 注册中断处理函数 | |
| virtual auto | SendIpi (uint64_t target_cpu_mask) -> Expected< void >=0 |
| 发送 IPI 到指定核心 | |
| virtual auto | BroadcastIpi () -> Expected< void >=0 |
| 广播 IPI 到所有其他核心 | |
| virtual auto | RegisterExternalInterrupt (uint32_t irq, uint32_t cpu_id, uint32_t priority, InterruptDelegate handler) -> Expected< void >=0 |
| 注册外部中断处理函数 | |
构造/析构函数 | |
| InterruptBase ()=default | |
| InterruptBase (const InterruptBase &)=delete | |
| InterruptBase (InterruptBase &&)=delete | |
| auto | operator= (const InterruptBase &) -> InterruptBase &=delete |
| auto | operator= (InterruptBase &&) -> InterruptBase &=delete |
| virtual | ~InterruptBase ()=default |
中断子系统抽象基类
所有架构的中断处理必须实现此接口。 已知实现:PLIC(RISC-V)、GIC(AArch64)、APIC(x86_64)
Definition at line 23 of file interrupt_base.h.
| using InterruptBase::InterruptDelegate = etl::delegate<uint64_t(uint64_t, cpu_io::TrapContext*)> |
类型安全的中断处理委托
| cause | 中断或异常号 |
| context | 中断上下文 |
Definition at line 31 of file interrupt_base.h.
|
default |
|
delete |
|
delete |
|
virtualdefault |
|
pure virtual |
|
pure virtual |
|
delete |
|
delete |
|
pure virtual |
|
pure virtual |
|
pure virtual |