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, &reg) != 0 ||
                    pci_readmask(bus, dev, func, bar, &reg1) != 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, &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, &reg) != 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, &reg) != 0)
                warn("unable to read PCI_PRIBUS_1");

Reply via email to