From ed3f008249d7d71e38def9eb37338ebfad81e257 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20Mare=C5=A1?= Date: Sun, 5 Apr 2026 19:18:22 +0200 Subject: [PATCH] filters: Added function for testing if a filter specifies slot/id --- lib/filter.c | 10 ++++++++++ lib/pci.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/lib/filter.c b/lib/filter.c index 4221f57..ad7d7a9 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -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) { diff --git a/lib/pci.h b/lib/pci.h index 0ef1a70..787a4bb 100644 --- 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) -- 2.47.3