fn service_irq(&mut self, irq: usize) -> Result<()> {
        let entry = &mut self.reg_entries[irq];

        self.interrupt_source_group
            .trigger(irq as InterruptIndex)
            .map_err(Error::TriggerInterrupt)?;
        debug!("Interrupt successfully delivered");

        // If trigger mode is level sensitive, set the Remote IRR bit.
        // It will be cleared when the EOI is received.
        if trigger_mode(*entry) == 1 {
            set_remote_irr(entry, 1);
        }
        // Clear the Delivery Status bit
        set_delivery_status(entry, 0);

        Ok(())
    }
// This should be called anytime an interrupt needs to be injected into the
// running guest.
This should be called anytime an interrupt needs to be injected into the
running guest.
This should be called anytime an interrupt needs to be injected into the running guest .
fn service_irq(&mut self, irq: usize) -> Result<()> {
        let entry = &mut self.reg_entries[irq];
        self.interrupt_source_group
            .trigger(irq as InterruptIndex)
            .map_err(Error::TriggerInterrupt)?;
        debug!("Interrupt successfully delivered");
        // If trigger mode is level sensitive, set the Remote IRR bit.
        // It will be cleared when the EOI is received.
        if trigger_mode(*entry) == 1 {
            set_remote_irr(entry, 1);
        }
        // Clear the Delivery Status bit
        set_delivery_status(entry, 0);
        Ok(())
    }
fn service_irq ( & mut self , irq : usize ) -> Result < ( ) > { let entry = & mut self . reg_entries [ irq ] ; self . interrupt_source_group . trigger ( irq as InterruptIndex ) . map_err ( Error :: TriggerInterrupt ) ? ; debug ! ( " " ) ; // If trigger mode is level sensitive, set the Remote IRR bit. // It will be cleared when the EOI is received. if trigger_mode ( * entry ) == 1 { set_remote_irr ( entry , 1 ) ; } // Clear the Delivery Status bit set_delivery_status ( entry , 0 ) ; Ok ( ( ) ) }
This should be called anytime an interrupt needs to be injected into the
running guest.
This should be called anytime an interrupt needs to be injected into the running guest .
&mut self
irq
usize
&mut self
irq
usize