[pve-devel] [PATCH] add print_pci_addr
Derumier Alexandre
aderumier at odiso.com
Thu Sep 15 06:47:39 CEST 2011
contain devices pci addr and bus mapping
return formated string with bus=pci.x,addr=x
also in this commit, use it for virtio disk
Signed-off-by: Derumier Alexandre <aderumier at odiso.com>
---
PVE/QemuServer.pm | 31 +++++++++++++++++++++++++++++--
1 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index c15cbfa..c1d99e8 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -887,8 +887,8 @@ sub print_drivedevice_full {
my $maxdev = 0;
if ($drive->{interface} eq 'virtio') {
-
- $device="virtio-blk-pci,drive=drive-$drive->{interface}$drive->{index},id=device-$drive->{interface}$drive->{index}";
+ my $pciaddr=print_pci_addr("$drive->{interface}$drive->{index}");
+ $device="virtio-blk-pci,drive=drive-$drive->{interface}$drive->{index},id=device-$drive->{interface}$drive->{index}$pciaddr";
}
elsif ($drive->{interface} eq 'scsi') {
@@ -2781,4 +2781,31 @@ sub pci_dev_bind_to_stub {
return -d $testdir;
}
+sub print_pci_addr() {
+ my ($id) = @_;
+ my $res = '';
+ my $devices = {};
+
+ $devices->{virtio0}->{bus} = 0;
+ $devices->{virtio0}->{addr} = 10;
+ $devices->{virtio1}->{bus} = 0;
+ $devices->{virtio1}->{addr} = 11;
+ $devices->{virtio2}->{bus} = 0;
+ $devices->{virtio2}->{addr} = 12;
+ $devices->{virtio3}->{bus} = 0;
+ $devices->{virtio3}->{addr} = 13;
+ $devices->{virtio4}->{bus} = 0;
+ $devices->{virtio4}->{addr} = 14;
+ $devices->{virtio5}->{bus} = 0;
+ $devices->{virtio5}->{addr} = 15;
+
+
+ if (defined ($devices->{$id}->{bus}) && defined ($devices->{$id}->{addr})) {
+ my $addr = sprintf("0x%x", $devices->{$id}->{addr});
+ $res = ",bus=pci.$devices->{$id}->{bus},addr=$addr";
+ }
+ return $res;
+
+}
+
1;
--
1.7.2.5
More information about the pve-devel
mailing list