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>12f2022a8aSLoGinpub 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