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

Method enable

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

Source from the content-addressed store, hash-verified

69 }
70
71 fn enable(&mut self, vm: &dyn hypervisor::Vm) -> Result<()> {
72 let gsi = match self.gsi {
73 Some(gsi) => gsi,
74 // Do nothing if no GSI was ever allocated for this route, which means the interrupt is still masked.
75 None => return Ok(()),
76 };
77
78 if !self.registered {
79 if let Some(ref irq_fd) = self.irq_fd {
80 vm.register_irqfd(irq_fd, gsi)
81 .map_err(|e| io::Error::other(format!("Failed registering irq_fd: {e}")))?;
82 }
83
84 // Update internals to track the irq_fd as "registered".
85 self.registered = true;
86 }
87
88 Ok(())
89 }
90
91 fn disable(&mut self, vm: &dyn hypervisor::Vm) -> Result<()> {
92 let gsi = match self.gsi {

Callers 1

updateMethod · 0.45

Calls 2

iterMethod · 0.80
register_irqfdMethod · 0.45

Tested by

no test coverage detected