]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/dump.c
CXL3.0: Add DVSEC CXLCtrl3 and missing CXLCtl2
[pciutils.git] / lib / dump.c
index bdd1df655084fb5c532f29d147acffb6ba0df27b..c0f929133973ad079ab3895cdb2bbe726f99d94e 100644 (file)
@@ -62,7 +62,7 @@ dump_init(struct pci_access *a)
   struct pci_dev *dev = NULL;
   int len, mn, bn, dn, fn, i, j;
 
-  if (!a)
+  if (!name)
     a->error("dump: File name not given.");
   if (!(f = fopen(name, "r")))
     a->error("dump: Cannot open %s: %s", name, strerror(errno));
@@ -80,7 +80,8 @@ dump_init(struct pci_access *a)
       len = z - buf + 1;
       mn = 0;
       if (dump_validate(buf, "##:##.# ") && sscanf(buf, "%x:%x.%d", &bn, &dn, &fn) == 3 ||
-         dump_validate(buf, "####:##:##.# ") && sscanf(buf, "%x:%x:%x.%d", &mn, &bn, &dn, &fn) == 4)
+         dump_validate(buf, "####:##:##.# ") && sscanf(buf, "%x:%x:%x.%d", &mn, &bn, &dn, &fn) == 4 ||
+         dump_validate(buf, "#####:##:##.# ") && sscanf(buf, "%x:%x:%x.%d", &mn, &bn, &dn, &fn) == 4)
        {
          dev = pci_get_dev(a, mn, bn, dn, fn);
          dump_alloc_data(dev, 256);
@@ -89,7 +90,9 @@ dump_init(struct pci_access *a)
       else if (!len)
        dev = NULL;
       else if (dev &&
-              (dump_validate(buf, "##: ") || dump_validate(buf, "###: ")) &&
+              (dump_validate(buf, "##: ") || dump_validate(buf, "###: ") || dump_validate(buf, "####: ") ||
+               dump_validate(buf, "#####: ") || dump_validate(buf, "######: ") ||
+               dump_validate(buf, "#######: ") || dump_validate(buf, "########: ")) &&
               sscanf(buf, "%x: ", &i) == 1)
        {
          struct dump_data *dd = dev->aux;