From bf94e590f28a7796262ea9c336aad7f865e2bf37 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Fri, 16 Nov 2018 16:17:47 +0100 Subject: [PATCH] SysFSTools: factor out PCI regex Signed-off-by: Dominik Csapak --- src/PVE/SysFSTools.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/PVE/SysFSTools.pm b/src/PVE/SysFSTools.pm index 8906f19..87568fb 100644 --- a/src/PVE/SysFSTools.pm +++ b/src/PVE/SysFSTools.pm @@ -8,13 +8,15 @@ use IO::File; use PVE::Tools qw(file_read_firstline dir_glob_foreach); my $pcisysfs = "/sys/bus/pci"; +my $pciregex = "([a-f0-9]{4}):([a-f0-9]{2}):([a-f0-9]{2})\.([a-f0-9])"; sub lspci { my $devices = {}; - dir_glob_foreach("$pcisysfs/devices", '[a-f0-9]{4}:([a-f0-9]{2}:[a-f0-9]{2})\.([0-9])', sub { - my (undef, $id, $function) = @_; + dir_glob_foreach("$pcisysfs/devices", $pciregex, sub { + my (undef, undef, $bus, $slot, $function) = @_; + my $id = "$bus:$slot"; my $res = { id => $id, function => $function}; push @{$devices->{$id}}, $res; }); @@ -55,7 +57,7 @@ sub pci_device_info { my $res; - return undef if $name !~ m/^([a-f0-9]{4}):([a-f0-9]{2}):([a-f0-9]{2})\.([a-f0-9])$/; + return undef if $name !~ m/^${pciregex}$/; my ($domain, $bus, $slot, $func) = ($1, $2, $3, $4); my $irq = file_read_firstline("$pcisysfs/devices/$name/irq"); -- 2.39.2