diff options
Diffstat (limited to 'src/main/java/org/openslx/libvirt/domain/device/HostdevPci.java')
-rw-r--r-- | src/main/java/org/openslx/libvirt/domain/device/HostdevPci.java | 59 |
1 files changed, 8 insertions, 51 deletions
diff --git a/src/main/java/org/openslx/libvirt/domain/device/HostdevPci.java b/src/main/java/org/openslx/libvirt/domain/device/HostdevPci.java index d2be2d6..1351f26 100644 --- a/src/main/java/org/openslx/libvirt/domain/device/HostdevPci.java +++ b/src/main/java/org/openslx/libvirt/domain/device/HostdevPci.java @@ -8,8 +8,7 @@ import org.openslx.libvirt.xml.LibvirtXmlNode; * @author Manuel Bentele * @version 1.0 */ -public class HostdevPci extends Hostdev implements HostdevAddressableSource<HostdevPciDeviceAddress>, - HostdevAddressableTarget<HostdevPciDeviceAddress> +public class HostdevPci extends Hostdev implements HostdevAddressableSource<HostdevPciDeviceAddress> { /** * Creates an empty hostdev PCI device. @@ -29,46 +28,6 @@ public class HostdevPci extends Hostdev implements HostdevAddressableSource<Host super( xmlNode ); } - /** - * Returns the PCI device address from an address XML element selected by a XPath expression. - * - * @param expression XPath expression to select the XML address element. - * @return PCI device address from the selected XML address element. - */ - private HostdevPciDeviceAddress getPciAddress( final String expression ) - { - String pciDomain = this.getXmlElementAttributeValue( expression, "domain" ); - String pciBus = this.getXmlElementAttributeValue( expression, "bus" ); - String pciDevice = this.getXmlElementAttributeValue( expression, "slot" ); - String pciFunction = this.getXmlElementAttributeValue( expression, "function" ); - - pciDomain = HostdevUtils.removeHexPrefix( pciDomain ); - pciBus = HostdevUtils.removeHexPrefix( pciBus ); - pciDevice = HostdevUtils.removeHexPrefix( pciDevice ); - pciFunction = HostdevUtils.removeHexPrefix( pciFunction ); - - return HostdevPciDeviceAddress.valueOf( pciDomain + ":" + pciBus + ":" + pciDevice + "." + pciFunction ); - } - - /** - * Sets the PCI device address for an XML address element selected by a XPath expression. - * - * @param expression XPath expression to select the XML address element. - * @param address PCI device address for the selected XML address element. - */ - private void setPciAddress( final String expression, final HostdevPciDeviceAddress address ) - { - final String pciDomain = HostdevUtils.appendHexPrefix( address.getPciDomainAsString() ); - final String pciBus = HostdevUtils.appendHexPrefix( address.getPciBusAsString() ); - final String pciDevice = HostdevUtils.appendHexPrefix( address.getPciDeviceAsString() ); - final String pciFunction = HostdevUtils.appendHexPrefix( address.getPciFunctionAsString() ); - - this.setXmlElementAttributeValue( expression, "domain", pciDomain ); - this.setXmlElementAttributeValue( expression, "bus", pciBus ); - this.setXmlElementAttributeValue( expression, "slot", pciDevice ); - this.setXmlElementAttributeValue( expression, "function", pciFunction ); - } - @Override public HostdevPciDeviceAddress getSource() { @@ -81,16 +40,14 @@ public class HostdevPci extends Hostdev implements HostdevAddressableSource<Host this.setPciAddress( "source/address", address ); } - @Override - public HostdevPciDeviceAddress getTarget() - { - return this.getPciAddress( "address" ); - } - - @Override - public void setTarget( HostdevPciDeviceAddress address ) + /** + * Set multifunction mode. + * + * If enabled, the device is said to have multiple functions. + */ + public void setMultifunction( boolean on ) { - this.setPciAddress( "address", address ); + this.setXmlElementAttributeValueOnOff( "address", "multifunction", on ); } /** |