|
| auto | Do (uint64_t cause, cpu_io::TrapContext *context) -> void override |
| | 执行中断处理
|
| |
| auto | RegisterInterruptFunc (uint64_t cause, InterruptDelegate func) -> void override |
| | 注册中断处理函数
|
| |
| auto | SendIpi (uint64_t target_cpu_mask) -> Expected< void > override |
| | 发送 IPI 到指定 CPU
|
| |
| auto | BroadcastIpi () -> Expected< void > override |
| | 广播 IPI 到所有 CPU
|
| |
| auto | RegisterExternalInterrupt (uint32_t irq, uint32_t cpu_id, uint32_t priority, InterruptDelegate handler) -> Expected< void > override |
| | 注册外部中断
|
| |
| __always_inline auto | SetUp () const -> void |
| | 设置 GIC
|
| |
| __always_inline auto | Spi (uint32_t intid, uint32_t cpuid) const -> void |
| | 设置 SPI 中断
|
| |
| __always_inline auto | Ppi (uint32_t intid, uint32_t cpuid) const -> void |
| | 设置 PPI 中断
|
| |
| __always_inline auto | Sgi (uint32_t intid, uint32_t cpuid) const -> void |
| | 设置 SGI 中断
|
| |
| auto | Do (uint64_t cause, cpu_io::TrapContext *context) -> void override |
| | 执行中断处理
|
| |
| auto | RegisterInterruptFunc (uint64_t cause, InterruptDelegate func) -> void override |
| | 注册中断处理函数
|
| |
| auto | SendIpi (uint64_t target_cpu_mask) -> Expected< void > override |
| | 发送 IPI 到指定核心
|
| |
| auto | BroadcastIpi () -> Expected< void > override |
| | 广播 IPI 到所有其他核心
|
| |
| auto | RegisterExternalInterrupt (uint32_t irq, uint32_t cpu_id, uint32_t priority, InterruptDelegate handler) -> Expected< void > override |
| | 注册外部中断处理函数
|
| |
| auto | Do (uint64_t cause, cpu_io::TrapContext *context) -> void override |
| | 执行中断处理
|
| |
| auto | RegisterInterruptFunc (uint64_t cause, InterruptDelegate func) -> void override |
| | 注册中断处理函数
|
| |
| auto | SendIpi (uint64_t target_cpu_mask) -> Expected< void > override |
| | 发送 IPI 到指定核心
|
| |
| auto | BroadcastIpi () -> Expected< void > override |
| | 广播 IPI 到所有其他核心
|
| |
| auto | RegisterExternalInterrupt (uint32_t irq, uint32_t cpu_id, uint32_t priority, InterruptDelegate handler) -> Expected< void > override |
| | 注册外部中断处理函数
|
| |
| auto | InitApic (size_t cpu_count) -> void |
| | 初始化 APIC
|
| |
| auto | SetUpIdtr () -> void |
| | 初始化 idtr
|
| |
|
| | Interrupt () |
| |
| | Interrupt (const Interrupt &)=delete |
| |
| | Interrupt (Interrupt &&)=delete |
| |
| auto | operator= (const Interrupt &) -> Interrupt &=delete |
| |
| auto | operator= (Interrupt &&) -> Interrupt &=delete |
| |
| | ~Interrupt ()=default |
| |
| | Interrupt () |
| |
| | Interrupt (const Interrupt &)=delete |
| |
| | Interrupt (Interrupt &&)=delete |
| |
| auto | operator= (const Interrupt &) -> Interrupt &=delete |
| |
| auto | operator= (Interrupt &&) -> Interrupt &=delete |
| |
| | ~Interrupt ()=default |
| |
| | Interrupt () |
| |
| | Interrupt (const Interrupt &)=delete |
| |
| | Interrupt (Interrupt &&)=delete |
| |
| auto | operator= (const Interrupt &) -> Interrupt &=delete |
| |
| auto | operator= (Interrupt &&) -> Interrupt &=delete |
| |
| | ~Interrupt () override=default |
| |
|
| __always_inline auto | plic () -> Plic & |
| | 获取 PLIC 引用
|
| |
| __always_inline auto | plic () const -> const Plic & |
| | 获取 PLIC 的只读引用
|
| |
| auto | InitPlic (uint64_t dev_addr, size_t ndev, size_t context_count) -> void |
| | 初始化 PLIC
|
| |
|
| __always_inline auto | apic () -> Apic & |
| |
| __always_inline auto | apic () const -> const Apic & |
| |
| | InterruptBase ()=default |
| |
| | InterruptBase (const InterruptBase &)=delete |
| |
| | InterruptBase (InterruptBase &&)=delete |
| |
| auto | operator= (const InterruptBase &) -> InterruptBase &=delete |
| |
| auto | operator= (InterruptBase &&) -> InterruptBase &=delete |
| |
| virtual | ~InterruptBase ()=default |
| |
AArch64 中断控制器实现
- Copyright
- Copyright The SimpleKernel Contributors
Definition at line 19 of file interrupt.h.