ok?
Index: pcidump.c
===================================================================
RCS file: /cvs/src/usr.sbin/pcidump/pcidump.c,v
retrieving revision 1.46
diff -u -p -r1.46 pcidump.c
--- pcidump.c 31 Aug 2017 12:03:02 -0000 1.46
+++ pcidump.c 8 Apr 2018 11:52:21 -0000
@@ -455,7 +455,7 @@ dump_caplist(int bus, int dev, int func,
}
void
-dump_type0(int bus, int dev, int func)
+dump_bars(int bus, int dev, int func, int end)
{
const char *memtype;
u_int64_t mem;
@@ -463,7 +463,7 @@ dump_type0(int bus, int dev, int func)
u_int32_t reg, reg1;
int bar;
- for (bar = PCI_MAPREG_START; bar < PCI_MAPREG_END; bar += 0x4) {
+ for (bar = PCI_MAPREG_START; bar < end; bar += 0x4) {
if (pci_read(bus, dev, func, bar, ®) != 0 ||
pci_readmask(bus, dev, func, bar, ®1) != 0)
warn("unable to read PCI_MAPREG 0x%02x", bar);
@@ -519,6 +519,14 @@ dump_type0(int bus, int dev, int func)
break;
}
}
+}
+
+void
+dump_type0(int bus, int dev, int func)
+{
+ u_int32_t reg;
+
+ dump_bars(bus, dev, func, PCI_MAPREG_END);
if (pci_read(bus, dev, func, PCI_CARDBUS_CIS_REG, ®) != 0)
warn("unable to read PCI_CARDBUS_CIS_REG");
@@ -549,13 +557,8 @@ void
dump_type1(int bus, int dev, int func)
{
u_int32_t reg;
- int bar;
- for (bar = PCI_MAPREG_START; bar < PCI_MAPREG_PPB_END; bar += 0x4) {
- if (pci_read(bus, dev, func, bar, ®) != 0)
- warn("unable to read PCI_MAPREG 0x%02x", bar);
- printf("\t0x%04x: %08x\n", bar, reg);
- }
+ dump_bars(bus, dev, func, PCI_MAPREG_PPB_END);
if (pci_read(bus, dev, func, PCI_PRIBUS_1, ®) != 0)
warn("unable to read PCI_PRIBUS_1");