• D
    Introduce a standardized data structure for device addresses · 1b0cce7d
    Daniel P. Berrange 提交于
    All guest devices now use a common device address structure
    summarized by:
    
      enum virDomainDeviceAddressType {
        VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE,
        VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI,
      };
    
      struct _virDomainDevicePCIAddress {
        unsigned int domain;
        unsigned int bus;
        unsigned int slot;
        unsigned int function;
      };
    
      struct _virDomainDeviceInfo {
        int type;
        union {
            virDomainDevicePCIAddress pci;
        } addr;
      };
    
    This replaces the anonymous structs in Disk/Net/Hostdev data
    structures. Where available, the address is *always* printed
    in the XML file, instead of being hidden in the internal state
    file.
    
      <address type='pci' domain='0x0000' bus='0x1e' slot='0x07' function='0x0'/>
    
    The structure definition is based on Wolfgang Mauerer's disk
    controller patch series.
    
    * docs/schemas/domain.rng: Define the <address> syntax and
      associate it with disk/net/hostdev devices
    * src/conf/domain_conf.h, src/conf/domain_conf.c,
      src/libvirt_private.syms: APIs for parsing/formatting address
      information. Also remove the QEMU specific 'pci_addr' attributes
    * src/qemu/qemu_driver.c: Replace use of 'pci_addr' attrs with
      new standardized format.
    1b0cce7d
domain_conf.c 172.1 KB