xref: /DragonOS/kernel/src/exception/init.rs (revision e28411791f090c421fe4b6fa5956fb1bd362a8d9)
1f2022a8aSLoGin use system_error::SystemError;
2f2022a8aSLoGin 
3f2022a8aSLoGin use crate::arch::CurrentIrqArch;
4f2022a8aSLoGin 
5*e2841179SLoGin use super::{
6*e2841179SLoGin     dummychip::dummy_chip_init, irqdesc::early_irq_init, irqdomain::irq_domain_manager_init,
7*e2841179SLoGin     InterruptArch,
8*e2841179SLoGin };
9f2022a8aSLoGin 
10f2022a8aSLoGin /// 初始化中断
11f2022a8aSLoGin #[inline(never)]
irq_init() -> Result<(), SystemError>12f2022a8aSLoGin pub fn irq_init() -> Result<(), SystemError> {
13f2022a8aSLoGin     // todo: 通用初始化
14f2022a8aSLoGin 
153bc96fa4SLoGin     dummy_chip_init();
16*e2841179SLoGin     irq_domain_manager_init();
173bc96fa4SLoGin     early_irq_init().expect("early_irq_init failed");
183bc96fa4SLoGin 
19f2022a8aSLoGin     // 初始化架构相关的中断
20f2022a8aSLoGin     unsafe { CurrentIrqArch::arch_irq_init() }?;
21f2022a8aSLoGin     return Ok(());
22f2022a8aSLoGin }
23