diff options
Diffstat (limited to 'devices/src/pci')
-rw-r--r-- | devices/src/pci/pci_configuration.rs | 17 | ||||
-rw-r--r-- | devices/src/pci/vfio_pci.rs | 5 |
2 files changed, 10 insertions, 12 deletions
diff --git a/devices/src/pci/pci_configuration.rs b/devices/src/pci/pci_configuration.rs index ebfa2a6..ff2da1a 100644 --- a/devices/src/pci/pci_configuration.rs +++ b/devices/src/pci/pci_configuration.rs @@ -25,7 +25,7 @@ const INTERRUPT_LINE_PIN_REG: usize = 15; /// Represents the types of PCI headers allowed in the configuration registers. #[allow(dead_code)] -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug)] pub enum PciHeaderType { Device, Bridge, @@ -33,7 +33,7 @@ pub enum PciHeaderType { /// Classes of PCI nodes. #[allow(dead_code)] -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug)] pub enum PciClassCode { TooOld, MassStorage, @@ -70,7 +70,7 @@ pub trait PciSubclass { /// Subclasses of the MultimediaController class. #[allow(dead_code)] -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PciMultimediaSubclass { VideoController = 0x00, AudioController = 0x01, @@ -87,7 +87,7 @@ impl PciSubclass for PciMultimediaSubclass { /// Subclasses of the BridgeDevice #[allow(dead_code)] -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PciBridgeSubclass { HostBridge = 0x00, IsaBridge = 0x01, @@ -111,7 +111,7 @@ impl PciSubclass for PciBridgeSubclass { /// Subclass of the SerialBus #[allow(dead_code)] -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PciSerialBusSubClass { Firewire = 0x00, ACCESSbus = 0x01, @@ -135,6 +135,7 @@ pub trait PciProgrammingInterface { } /// Types of PCI capabilities. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum PciCapabilityID { ListID = 0, PowerManagement = 0x01, @@ -177,20 +178,20 @@ pub struct PciConfiguration { } /// See pci_regs.h in kernel -#[derive(Copy, Clone, Debug, PartialEq)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PciBarRegionType { Memory32BitRegion = 0, IORegion = 0x01, Memory64BitRegion = 0x04, } -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PciBarPrefetchable { NotPrefetchable = 0, Prefetchable = 0x08, } -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug)] pub struct PciBarConfiguration { addr: u64, size: u64, diff --git a/devices/src/pci/vfio_pci.rs b/devices/src/pci/vfio_pci.rs index fa27dec..5f6998e 100644 --- a/devices/src/pci/vfio_pci.rs +++ b/devices/src/pci/vfio_pci.rs @@ -832,10 +832,7 @@ impl PciDevice for VfioPciDevice { low = self.config.read_config_dword(offset); let low_flag = low & 0xf; - let is_64bit = match low_flag & 0x4 { - 0x4 => true, - _ => false, - }; + let is_64bit = (low_flag & 0x4) == 0x4; if (low_flag & 0x1 == 0 || i == VFIO_PCI_ROM_REGION_INDEX) && low != 0 { let mut upper: u32 = 0xffffffff; if is_64bit { |