]> mj.ucw.cz Git - pciutils.git/commitdiff
filters: Added function for testing if a filter specifies slot/id
authorMartin Mareš <mj@ucw.cz>
Sun, 5 Apr 2026 17:18:22 +0000 (19:18 +0200)
committerMartin Mareš <mj@ucw.cz>
Sun, 5 Apr 2026 17:18:22 +0000 (19:18 +0200)
lib/filter.c
lib/pci.h

index 4221f570bd65f2b1b37d462a83ed73ea2af9a6aa..ad7d7a9116be74fdad6ebe4247f3dd6006fb8abf 100644 (file)
@@ -164,6 +164,11 @@ pci_filter_parse_slot_v38(struct pci_filter *f, char *str)
   return NULL;
 }
 
+int pci_filter_has_slot(struct pci_filter *f)
+{
+  return f->domain >= 0 || f->bus >= 0 || f->slot >= 0 || f->func >= 0;
+}
+
 /* ID filter syntax: [vendor]:[device][:class[:progif]] */
 
 char *
@@ -194,6 +199,11 @@ pci_filter_parse_id_v38(struct pci_filter *f, char *str)
   return NULL;
 }
 
+int pci_filter_has_id(struct pci_filter *f)
+{
+  return f->vendor >= 0 || f->device >= 0 || f->device_class >= 0 || f->prog_if >= 0;
+}
+
 int
 pci_filter_match_v38(struct pci_filter *f, struct pci_dev *d)
 {
index 0ef1a70dc08e9f58d53fa5fd8a1adc47b4074329..787a4bbd22de610bb31330debdabe07994da0bd8 100644 (file)
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -278,6 +278,8 @@ void pci_filter_init(struct pci_access *, struct pci_filter *) PCI_ABI;
 char *pci_filter_parse_slot(struct pci_filter *, char *) PCI_ABI;
 char *pci_filter_parse_id(struct pci_filter *, char *) PCI_ABI;
 int pci_filter_match(struct pci_filter *, struct pci_dev *) PCI_ABI;
+int pci_filter_has_slot(struct pci_filter *) PCI_ABI;
+int pci_filter_has_id(struct pci_filter *) PCI_ABI;
 
 /*
  *     Conversion of PCI IDs to names (according to the pci.ids file)