8#include <etl/delegate.h>
63 [[nodiscard]]
virtual auto SendIpi(uint64_t target_cpu_mask)
81 uint32_t irq, uint32_t cpu_id, uint32_t priority,
virtual auto BroadcastIpi() -> Expected< void >=0
广播 IPI 到所有其他核心
virtual auto RegisterInterruptFunc(uint64_t cause, InterruptDelegate func) -> void=0
注册中断处理函数
auto operator=(InterruptBase &&) -> InterruptBase &=delete
InterruptBase(const InterruptBase &)=delete
auto operator=(const InterruptBase &) -> InterruptBase &=delete
InterruptBase(InterruptBase &&)=delete
virtual ~InterruptBase()=default
virtual auto Do(uint64_t, cpu_io::TrapContext *) -> void=0
执行中断处理
etl::delegate< uint64_t(uint64_t, cpu_io::TrapContext *)> InterruptDelegate
类型安全的中断处理委托
virtual auto SendIpi(uint64_t target_cpu_mask) -> Expected< void >=0
发送 IPI 到指定核心
virtual auto RegisterExternalInterrupt(uint32_t irq, uint32_t cpu_id, uint32_t priority, InterruptDelegate handler) -> Expected< void >=0
注册外部中断处理函数
std::expected< T, Error > Expected
std::expected 别名模板