From ef78f397412b4f0b9ee5f89f7925c52a1b211d49 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Thu, 30 May 2024 17:52:26 +0200 Subject: [PATCH] ABI version bump for pci_fill_info() We have new flags and new fields in struct pci_dev. --- lib/access.c | 22 ++++++++++++---------- lib/caps.c | 2 +- lib/filter.c | 6 +++--- lib/internal.h | 1 + lib/libpci.ver | 5 +++++ 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/lib/access.c b/lib/access.c index 7d66123..baaabcb 100644 --- a/lib/access.c +++ b/lib/access.c @@ -191,7 +191,7 @@ pci_reset_properties(struct pci_dev *d) } int -pci_fill_info_v38(struct pci_dev *d, int flags) +pci_fill_info_v313(struct pci_dev *d, int flags) { unsigned int uflags = flags; if (uflags & PCI_FILL_RESCAN) @@ -205,21 +205,23 @@ pci_fill_info_v38(struct pci_dev *d, int flags) } /* In version 3.1, pci_fill_info got new flags => versioned alias */ -/* In versions 3.2, 3.3, 3.4, 3.5 and 3.8, the same has happened */ -STATIC_ALIAS(int pci_fill_info(struct pci_dev *d, int flags), pci_fill_info_v38(d, flags)); -DEFINE_ALIAS(int pci_fill_info_v30(struct pci_dev *d, int flags), pci_fill_info_v38); -DEFINE_ALIAS(int pci_fill_info_v31(struct pci_dev *d, int flags), pci_fill_info_v38); -DEFINE_ALIAS(int pci_fill_info_v32(struct pci_dev *d, int flags), pci_fill_info_v38); -DEFINE_ALIAS(int pci_fill_info_v33(struct pci_dev *d, int flags), pci_fill_info_v38); -DEFINE_ALIAS(int pci_fill_info_v34(struct pci_dev *d, int flags), pci_fill_info_v38); -DEFINE_ALIAS(int pci_fill_info_v35(struct pci_dev *d, int flags), pci_fill_info_v38); +/* In versions 3.2, 3.3, 3.4, 3.5, 3.8 and 3.12, the same has happened */ +STATIC_ALIAS(int pci_fill_info(struct pci_dev *d, int flags), pci_fill_info_v313(d, flags)); +DEFINE_ALIAS(int pci_fill_info_v30(struct pci_dev *d, int flags), pci_fill_info_v313); +DEFINE_ALIAS(int pci_fill_info_v31(struct pci_dev *d, int flags), pci_fill_info_v313); +DEFINE_ALIAS(int pci_fill_info_v32(struct pci_dev *d, int flags), pci_fill_info_v313); +DEFINE_ALIAS(int pci_fill_info_v33(struct pci_dev *d, int flags), pci_fill_info_v313); +DEFINE_ALIAS(int pci_fill_info_v34(struct pci_dev *d, int flags), pci_fill_info_v313); +DEFINE_ALIAS(int pci_fill_info_v35(struct pci_dev *d, int flags), pci_fill_info_v313); +DEFINE_ALIAS(int pci_fill_info_v38(struct pci_dev *d, int flags), pci_fill_info_v313); SYMBOL_VERSION(pci_fill_info_v30, pci_fill_info@LIBPCI_3.0); SYMBOL_VERSION(pci_fill_info_v31, pci_fill_info@LIBPCI_3.1); SYMBOL_VERSION(pci_fill_info_v32, pci_fill_info@LIBPCI_3.2); SYMBOL_VERSION(pci_fill_info_v33, pci_fill_info@LIBPCI_3.3); SYMBOL_VERSION(pci_fill_info_v34, pci_fill_info@LIBPCI_3.4); SYMBOL_VERSION(pci_fill_info_v35, pci_fill_info@LIBPCI_3.5); -SYMBOL_VERSION(pci_fill_info_v38, pci_fill_info@@LIBPCI_3.8); +SYMBOL_VERSION(pci_fill_info_v38, pci_fill_info@LIBPCI_3.8); +SYMBOL_VERSION(pci_fill_info_v313, pci_fill_info@@LIBPCI_3.13); void pci_setup_cache(struct pci_dev *d, byte *cache, int len) diff --git a/lib/caps.c b/lib/caps.c index cf1df5d..6b39c10 100644 --- a/lib/caps.c +++ b/lib/caps.c @@ -130,7 +130,7 @@ pci_find_cap_nr(struct pci_dev *d, unsigned int id, unsigned int type, unsigned int target = (cap_number ? *cap_number : 0); unsigned int index = 0; - pci_fill_info_v38(d, ((type == PCI_CAP_NORMAL) ? PCI_FILL_CAPS : PCI_FILL_EXT_CAPS)); + pci_fill_info_v313(d, ((type == PCI_CAP_NORMAL) ? PCI_FILL_CAPS : PCI_FILL_EXT_CAPS)); for (c=d->first_cap; c; c=c->next) { diff --git a/lib/filter.c b/lib/filter.c index 0301f49..4221f57 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -204,20 +204,20 @@ pci_filter_match_v38(struct pci_filter *f, struct pci_dev *d) return 0; if (f->device >= 0 || f->vendor >= 0) { - pci_fill_info_v38(d, PCI_FILL_IDENT); + pci_fill_info_v313(d, PCI_FILL_IDENT); if ((f->device >= 0 && f->device != d->device_id) || (f->vendor >= 0 && f->vendor != d->vendor_id)) return 0; } if (f->device_class >= 0) { - pci_fill_info_v38(d, PCI_FILL_CLASS); + pci_fill_info_v313(d, PCI_FILL_CLASS); if ((f->device_class ^ d->device_class) & f->device_class_mask) return 0; } if (f->prog_if >= 0) { - pci_fill_info_v38(d, PCI_FILL_CLASS_EXT); + pci_fill_info_v313(d, PCI_FILL_CLASS_EXT); if (f->prog_if != d->prog_if) return 0; } diff --git a/lib/internal.h b/lib/internal.h index 68e9fa0..996b80d 100644 --- a/lib/internal.h +++ b/lib/internal.h @@ -104,6 +104,7 @@ int pci_fill_info_v33(struct pci_dev *, int flags) VERSIONED_ABI; int pci_fill_info_v34(struct pci_dev *, int flags) VERSIONED_ABI; int pci_fill_info_v35(struct pci_dev *, int flags) VERSIONED_ABI; int pci_fill_info_v38(struct pci_dev *, int flags) VERSIONED_ABI; +int pci_fill_info_v313(struct pci_dev *, int flags) VERSIONED_ABI; static inline int want_fill(struct pci_dev *d, unsigned want_fields, unsigned int try_fields) { diff --git a/lib/libpci.ver b/lib/libpci.ver index 33ee024..dbcc876 100644 --- a/lib/libpci.ver +++ b/lib/libpci.ver @@ -98,3 +98,8 @@ LIBPCI_3.8 { pci_filter_parse_id; pci_filter_parse_slot; }; + +LIBPCI_3.13 { + global: + pci_fill_info; +}; -- 2.39.2