diff --git a/src/vmm/LibVirtDriverKVM.cc b/src/vmm/LibVirtDriverKVM.cc index b9f4584e51..8ea47ff084 100644 --- a/src/vmm/LibVirtDriverKVM.cc +++ b/src/vmm/LibVirtDriverKVM.cc @@ -173,6 +173,13 @@ int LibVirtDriver::deployment_description_kvm( const VectorAttribute * input; + const VectorAttribute * pci; + + string domain = ""; + /* bus is already defined for disks */ + string slot = ""; + string func = ""; + const VectorAttribute * features; bool pae = false; @@ -949,6 +956,42 @@ int LibVirtDriver::deployment_description_kvm( attrs.clear(); + // ------------------------------------------------------------------------ + // PCI Passthrough + // ------------------------------------------------------------------------ + + num = vm->get_template_attribute("PCI",attrs); + + for (int i=0; i < num ;i++) + { + pci = dynamic_cast(attrs[i]); + + if ( pci == 0 ) + { + continue; + } + + domain = pci->vector_value("DOMAIN"); + bus = pci->vector_value("BUS"); + slot = pci->vector_value("SLOT"); + func = pci->vector_value("FUNCTION"); + + file << "\t\t"; + file << endl; + file << "\t\t\t" << endl; + + file << "\t\t\t\t
" << endl; + + file << "\t\t\t" << endl; + file << "\t\t" << endl; + } + + attrs.clear(); + file << "\t" << endl; // ------------------------------------------------------------------------