MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / disable

Method disable

vmm/src/interrupt.rs:91–109  ·  view source on GitHub ↗
(&mut self, vm: &dyn hypervisor::Vm)

Source from the content-addressed store, hash-verified

89 }
90
91 fn disable(&mut self, vm: &dyn hypervisor::Vm) -> Result<()> {
92 let gsi = match self.gsi {
93 Some(gsi) => gsi,
94 // Do nothing if no GSI was ever allocated for this route, which means the interrupt is still masked.
95 None => return Ok(()),
96 };
97
98 if self.registered {
99 if let Some(ref irq_fd) = self.irq_fd {
100 vm.unregister_irqfd(irq_fd, gsi)
101 .map_err(|e| io::Error::other(format!("Failed unregistering irq_fd: {e}")))?;
102 }
103
104 // Update internals to track the irq_fd as "unregistered".
105 self.registered = false;
106 }
107
108 Ok(())
109 }
110
111 fn trigger(&mut self) -> Result<()> {
112 match self.irq_fd {

Callers 3

set_msg_ctlMethod · 0.45
updateMethod · 0.45
updateMethod · 0.45

Calls 2

iterMethod · 0.80
unregister_irqfdMethod · 0.45

Tested by

no test coverage detected