Module Name: src Committed By: jdolecek Date: Tue Jul 14 17:19:03 UTC 2020
Modified Files: src/sys/dev/pci: ciss_pci.c Log Message: make ciss_pci_devices[] more compact To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/dev/pci/ciss_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/ciss_pci.c diff -u src/sys/dev/pci/ciss_pci.c:1.19 src/sys/dev/pci/ciss_pci.c:1.20 --- src/sys/dev/pci/ciss_pci.c:1.19 Tue Jul 14 12:04:46 2020 +++ src/sys/dev/pci/ciss_pci.c Tue Jul 14 17:19:03 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ciss_pci.c,v 1.19 2020/07/14 12:04:46 jdolecek Exp $ */ +/* $NetBSD: ciss_pci.c,v 1.20 2020/07/14 17:19:03 jdolecek Exp $ */ /* $OpenBSD: ciss_pci.c,v 1.9 2005/12/13 15:56:01 brad Exp $ */ /* @@ -19,7 +19,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ciss_pci.c,v 1.19 2020/07/14 12:04:46 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ciss_pci.c,v 1.20 2020/07/14 17:19:03 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -47,181 +47,46 @@ void ciss_pci_attach(device_t, device_t, CFATTACH_DECL_NEW(ciss_pci, sizeof(struct ciss_softc), ciss_pci_match, ciss_pci_attach, NULL, NULL); -const struct { + +static const struct { int vendor; int product; const char *name; } ciss_pci_devices[] = { - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA532, - "Compaq Smart Array 532" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA5300, - "Compaq Smart Array 5300 V1" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA5300_2, - "Compaq Smart Array 5300 V2" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA5312, - "Compaq Smart Array 5312" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA5i, - "Compaq Smart Array 5i" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA5i_2, - "Compaq Smart Array 5i V2" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA6i, - "Compaq Smart Array 6i" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA641, - "Compaq Smart Array 641" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA642, - "Compaq Smart Array 642" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA6400, - "Compaq Smart Array 6400" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA6400EM, - "Compaq Smart Array 6400EM" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA6422, - "Compaq Smart Array 6422" - }, - { - PCI_VENDOR_COMPAQ, - PCI_PRODUCT_COMPAQ_CSA64XX, - "Compaq Smart Array 64XX" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAE200, - "Smart Array E200" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAE200I_1, - "HP Smart Array E200I-1" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAE200I_2, - "HP Smart Array E200I-2" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAE200I_3, - "HP Smart Array E200I-3" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAP600, - "HP Smart Array P600" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAP800, - "HP Smart Array P800" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSAV100, - "HP Smart Array V100" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_1, - "HP Smart Array 1" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_2, - "HP Smart Array 2" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_3, - "HP Smart Array 3" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_4, - "HP Smart Array 4" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_5, - "HP Smart Array 5" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_6, - "HP Smart Array 6" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_7, - "HP Smart Array 7" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_8, - "HP Smart Array 8" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_9, - "HP Smart Array 9" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_10, - "HP Smart Array 10" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_11, - "HP Smart Array 11" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_12, - "HP Smart Array 12" - }, - { - PCI_VENDOR_HP, - PCI_PRODUCT_HP_HPSA_13, - "HP Smart Array 13" - }, - { - 0, - 0, - NULL - } +#define CISS_PCI_DEVICE(v, p, d) { PCI_VENDOR_##v, PCI_PRODUCT_##v##_##p, d } + CISS_PCI_DEVICE(COMPAQ, CSA532, "Compaq Smart Array 532"), + CISS_PCI_DEVICE(COMPAQ, CSA5300, "Compaq Smart Array 5300 V1"), + CISS_PCI_DEVICE(COMPAQ, CSA5300_2, "Compaq Smart Array 5300 V2"), + CISS_PCI_DEVICE(COMPAQ, CSA5312, "Compaq Smart Array 5312"), + CISS_PCI_DEVICE(COMPAQ, CSA5i, "Compaq Smart Array 5i"), + CISS_PCI_DEVICE(COMPAQ, CSA5i_2, "Compaq Smart Array 5i V2"), + CISS_PCI_DEVICE(COMPAQ, CSA6i, "Compaq Smart Array 6i"), + CISS_PCI_DEVICE(COMPAQ, CSA641, "Compaq Smart Array 641"), + CISS_PCI_DEVICE(COMPAQ, CSA642, "Compaq Smart Array 642"), + CISS_PCI_DEVICE(COMPAQ, CSA6400, "Compaq Smart Array 6400"), + CISS_PCI_DEVICE(COMPAQ, CSA6400EM, "Compaq Smart Array 6400EM"), + CISS_PCI_DEVICE(COMPAQ, CSA6422, "Compaq Smart Array 6422"), + CISS_PCI_DEVICE(COMPAQ, CSA64XX, "Compaq Smart Array 64XX"), + CISS_PCI_DEVICE(HP, HPSAE200, "Smart Array E200"), + CISS_PCI_DEVICE(HP, HPSAE200I_1, "HP Smart Array E200I-1"), + CISS_PCI_DEVICE(HP, HPSAE200I_2, "HP Smart Array E200I-2"), + CISS_PCI_DEVICE(HP, HPSAE200I_3, "HP Smart Array E200I-3"), + CISS_PCI_DEVICE(HP, HPSAP600, "HP Smart Array P600"), + CISS_PCI_DEVICE(HP, HPSAP800, "HP Smart Array P800"), + CISS_PCI_DEVICE(HP, HPSAV100, "HP Smart Array V100"), + CISS_PCI_DEVICE(HP, HPSA_1, "HP Smart Array 1"), + CISS_PCI_DEVICE(HP, HPSA_2, "HP Smart Array 2"), + CISS_PCI_DEVICE(HP, HPSA_3, "HP Smart Array 3"), + CISS_PCI_DEVICE(HP, HPSA_4, "HP Smart Array 4"), + CISS_PCI_DEVICE(HP, HPSA_5, "HP Smart Array 5"), + CISS_PCI_DEVICE(HP, HPSA_6, "HP Smart Array 6"), + CISS_PCI_DEVICE(HP, HPSA_7, "HP Smart Array 7"), + CISS_PCI_DEVICE(HP, HPSA_8, "HP Smart Array 8"), + CISS_PCI_DEVICE(HP, HPSA_9, "HP Smart Array 9"), + CISS_PCI_DEVICE(HP, HPSA_10, "HP Smart Array 10"), + CISS_PCI_DEVICE(HP, HPSA_11, "HP Smart Array 11"), + CISS_PCI_DEVICE(HP, HPSA_12, "HP Smart Array 12"), + CISS_PCI_DEVICE(HP, HPSA_13, "HP Smart Array 13"), }; int @@ -231,7 +96,7 @@ ciss_pci_match(device_t parent, cfdata_t pcireg_t reg = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_SUBSYS_ID_REG); int i; - for (i = 0; ciss_pci_devices[i].vendor; i++) + for (i = 0; i < __arraycount(ciss_pci_devices); i++) { if ((PCI_VENDOR(pa->pa_id) == ciss_pci_devices[i].vendor && PCI_PRODUCT(pa->pa_id) == ciss_pci_devices[i].product) || @@ -260,7 +125,7 @@ ciss_pci_attach(device_t parent, device_ sc->sc_dev = self; aprint_naive("\n"); - for (i = 0; ciss_pci_devices[i].vendor; i++) + for (i = 0; i < __arraycount(ciss_pci_devices[i]); i++) { if ((PCI_VENDOR(pa->pa_id) == ciss_pci_devices[i].vendor && PCI_PRODUCT(pa->pa_id) == ciss_pci_devices[i].product) ||