<dd>Describes a device on the host's PCI bus. Sub-elements
include:
<dl>
+ <dt><code>class</code></dt>
+ <dd>Combined class, subclass and
+ programming interface codes as 6-digit hexadecimal number.
+ <span class="since">Since 5.2.0</span></dd>
<dt><code>domain</code></dt>
<dd>Which domain the device belongs to.</dd>
<dt><code>bus</code></dt>
<name>igb</name>
</driver>
<capability type='pci'>
+ <class>0x020000</class>
<domain>0</domain>
<bus>2</bus>
<slot>0</slot>
<value>pci</value>
</attribute>
+ <element name='class'>
+ <data type="string">
+ <param name="pattern">0x[0-9a-fA-F]{6}</param>
+ </data>
+ </element>
<element name='domain'>
<ref name='unsignedLong'/>
</element>
{
size_t i;
+ virBufferAsprintf(buf, "<class>0x%.6x</class>\n", data->pci_dev.klass);
virBufferAsprintf(buf, "<domain>%d</domain>\n",
data->pci_dev.domain);
virBufferAsprintf(buf, "<bus>%d</bus>\n", data->pci_dev.bus);
orignode = ctxt->node;
ctxt->node = node;
+ if (virNodeDevCapsDefParseHexId("string(./class[1])", ctxt,
+ &pci_dev->klass, def,
+ _("no PCI class supplied for '%s'"),
+ _("invalid PCI class supplied for '%s'")) < 0)
+ goto out;
+
+ if (pci_dev->klass > 0xffffff) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("invalid PCI class supplied for '%s'"), def->name);
+ goto out;
+ }
+
if (virNodeDevCapsDefParseULong("number(./domain[1])", ctxt,
&pci_dev->domain, def,
_("no PCI domain ID supplied for '%s'"),
<name>pci_0000_00_02_0</name>
<parent>computer</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>0</bus>
<slot>2</slot>
<name>pci_0000_00_1c_0</name>
<parent>computer</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>0</bus>
<slot>28</slot>
<name>pci_0000_02_10_7</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>16</slot>
<name>pci_0000_02_10_7</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>16</slot>
<name>pci_0000_02_10_7</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>16</slot>
<name>pci_0000_02_10_7</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>16</slot>
<name>pci_0000_02_10_7</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>16</slot>
<name>pci_0000_02_10_7</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>16</slot>
<name>pci_1002_71c4</name>
<parent>pci_8086_27a1</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>1</bus>
<slot>0</slot>
<name>pci_0000_00_03_0</name>
<parent>computer</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<name>pci_0000_02_00_0</name>
<parent>pci_0000_00_04_0</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>2</bus>
<slot>0</slot>
<name>pci_0000_03_00_0</name>
<parent>pci_0000_00_1c_1</parent>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>3</bus>
<slot>0</slot>
<name>e1000e</name>
</driver>
<capability type='pci'>
+ <class>0xffffff</class>
<domain>0</domain>
<bus>0</bus>
<slot>25</slot>