irq_handle.rs 719 B

1234567891011121314151617181920212223242526272829
  1. use alloc::sync::Arc;
  2. use system_error::SystemError;
  3. use crate::{
  4. exception::{
  5. irqdata::IrqHandlerData,
  6. irqdesc::{IrqHandler, IrqReturn},
  7. IrqNumber,
  8. },
  9. // net::net_core::poll_ifaces_try_lock_onetime,
  10. net::net_core::poll_ifaces,
  11. };
  12. /// 默认的网卡中断处理函数
  13. #[derive(Debug)]
  14. pub struct DefaultNetIrqHandler;
  15. impl IrqHandler for DefaultNetIrqHandler {
  16. fn handle(
  17. &self,
  18. _irq: IrqNumber,
  19. _static_data: Option<&dyn IrqHandlerData>,
  20. _dynamic_data: Option<Arc<dyn IrqHandlerData>>,
  21. ) -> Result<IrqReturn, SystemError> {
  22. // poll_ifaces_try_lock_onetime().ok();
  23. poll_ifaces();
  24. Ok(IrqReturn::Handled)
  25. }
  26. }