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

Method enable_msi

pci/src/vfio.rs:1107–1124  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

1105 }
1106
1107 pub(crate) fn enable_msi(&self) -> Result<(), VfioPciError> {
1108 if let Some(msi) = &self.interrupt.msi {
1109 let mut irq_fds: Vec<EventFd> = Vec::new();
1110 for i in 0..msi.cfg.num_enabled_vectors() {
1111 if let Some(eventfd) = msi.interrupt_source_group.notifier(i as InterruptIndex) {
1112 irq_fds.push(eventfd);
1113 } else {
1114 return Err(VfioPciError::MissingNotifier);
1115 }
1116 }
1117
1118 self.vfio_wrapper
1119 .enable_msi(irq_fds.iter().collect())
1120 .map_err(VfioPciError::EnableMsi)?;
1121 }
1122
1123 Ok(())
1124 }
1125
1126 pub(crate) fn disable_msi(&self) {
1127 if let Err(e) = self.vfio_wrapper.disable_msi() {

Callers 1

Calls 5

newFunction · 0.85
num_enabled_vectorsMethod · 0.80
iterMethod · 0.80
notifierMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected