mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-11-05 11:31:14 +00:00
adf5881757
This check is new in the beta version of clippy and exists to avoid potential deadlocks by highlighting when the test in an if or for loop is something that holds a lock. In many cases we would need to make significant refactorings to be able to pass this check so disable in the affected crates. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
63 lines
1.4 KiB
Rust
63 lines
1.4 KiB
Rust
// Copyright © 2020 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
#![allow(clippy::significant_drop_in_scrutinee)]
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
mod bus;
|
|
pub mod dma_mapping;
|
|
pub mod interrupt;
|
|
|
|
pub use self::bus::{Bus, BusDevice, Error as BusError};
|
|
|
|
/// Type of Message Signalled Interrupt
|
|
#[derive(Copy, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub enum MsiIrqType {
|
|
/// PCI MSI IRQ numbers.
|
|
PciMsi,
|
|
/// PCI MSIx IRQ numbers.
|
|
PciMsix,
|
|
/// Generic MSI IRQ numbers.
|
|
GenericMsi,
|
|
}
|
|
|
|
#[derive(Copy, Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
|
|
pub enum PciBarType {
|
|
Io,
|
|
Mmio32,
|
|
Mmio64,
|
|
}
|
|
|
|
/// Enumeration for device resources.
|
|
#[allow(missing_docs)]
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub enum Resource {
|
|
/// IO Port address range.
|
|
PioAddressRange { base: u16, size: u16 },
|
|
/// Memory Mapped IO address range.
|
|
MmioAddressRange { base: u64, size: u64 },
|
|
/// PCI BAR
|
|
PciBar {
|
|
index: usize,
|
|
base: u64,
|
|
size: u64,
|
|
type_: PciBarType,
|
|
prefetchable: bool,
|
|
},
|
|
/// Legacy IRQ number.
|
|
LegacyIrq(u32),
|
|
/// Message Signaled Interrupt
|
|
MsiIrq {
|
|
ty: MsiIrqType,
|
|
base: u32,
|
|
size: u32,
|
|
},
|
|
/// Network Interface Card MAC address.
|
|
MacAddress(String),
|
|
/// KVM memslot index.
|
|
KvmMemSlot(u32),
|
|
}
|