Clean the macros from puc(4). Now with correct logic.
authorpirofti <pirofti@openbsd.org>
Thu, 22 Jul 2010 17:16:10 +0000 (17:16 +0000)
committerpirofti <pirofti@openbsd.org>
Thu, 22 Jul 2010 17:16:10 +0000 (17:16 +0000)
Tested and okay sthen@.

sys/dev/pci/puc.c
sys/dev/pci/pucdata.c
sys/dev/pci/pucvar.h

index 09da445..9ec1af4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: puc.c,v 1.16 2010/07/07 21:32:50 sthen Exp $  */
+/*     $OpenBSD: puc.c,v 1.17 2010/07/22 17:16:10 pirofti Exp $        */
 /*     $NetBSD: puc.c,v 1.3 1999/02/06 06:29:54 cgd Exp $      */
 
 /*
@@ -349,22 +349,13 @@ puc_find_description(u_int16_t vend, u_int16_t prod,
 {
        int i;
 
-#define checkreg(val, index) \
-    (((val) & puc_devices[i].rmask[(index)]) == puc_devices[i].rval[(index)])
-#define pucdevdone(idx) \
-    (puc_devices[idx].rval[0] == 0 && puc_devices[idx].rval[1] == 0 \
-       && puc_devices[idx].rval[2] == 0 && puc_devices[idx].rval[3] == 0)
-
-       for (i = 0; !pucdevdone(i); i++) {
-               if (checkreg(vend, PUC_REG_VEND) &&
-                   checkreg(prod, PUC_REG_PROD) &&
-                   checkreg(svend, PUC_REG_SVEND) &&
-                   checkreg(sprod, PUC_REG_SPROD))
-                       return (&puc_devices[i]);
-       }
-
-#undef devdone
-#undef checkreg
+       for (i = 0; !(puc_devs[i].rval[0] == 0 && puc_devs[i].rval[1] == 0 &&
+           puc_devs[i].rval[2] == 0 && puc_devs[i].rval[3] == 0); i++)
+               if ((vend & puc_devs[i].rmask[0]) == puc_devs[i].rval[0] &&
+                   (prod & puc_devs[i].rmask[1]) == puc_devs[i].rval[1] &&
+                   (svend & puc_devs[i].rmask[2]) == puc_devs[i].rval[2] &&
+                   (sprod & puc_devs[i].rmask[3]) == puc_devs[i].rval[3])
+                       return (&puc_devs[i]);
 
        return (NULL);
 }
index 0d9a2b4..f2b79db 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pucdata.c,v 1.71 2010/07/07 21:32:50 sthen Exp $      */
+/*     $OpenBSD: pucdata.c,v 1.72 2010/07/22 17:16:10 pirofti Exp $    */
 /*     $NetBSD: pucdata.c,v 1.6 1999/07/03 05:55:23 cgd Exp $  */
 
 /*
@@ -46,7 +46,7 @@
 #include <dev/pci/pcidevs.h>
 #include <dev/ic/comreg.h>
 
-const struct puc_device_description puc_devices[] = {
+const struct puc_device_description puc_devs[] = {
        /*
         * XXX no entry because I have no data:
         * XXX Dolphin Peripherals 4006 (single parallel)
index 857e1ea..b2a5fa4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pucvar.h,v 1.9 2010/07/07 21:32:50 sthen Exp $        */
+/*     $OpenBSD: pucvar.h,v 1.10 2010/07/22 17:16:10 pirofti Exp $     */
 /*     $NetBSD: pucvar.h,v 1.2 1999/02/06 06:29:54 cgd Exp $   */
 
 /*
@@ -51,11 +51,6 @@ struct puc_device_description {
        }                       ports[PUC_MAX_PORTS];
 };
 
-#define        PUC_REG_VEND            0
-#define        PUC_REG_PROD            1
-#define        PUC_REG_SVEND           2
-#define        PUC_REG_SPROD           3
-
 #define        PUC_PORT_TYPE_NONE      0
 #define        PUC_PORT_TYPE_COM       1
 #define        PUC_PORT_TYPE_LPT       2
@@ -85,7 +80,7 @@ struct puc_attach_args {
        void (*intr_disestablish)(struct puc_attach_args *, void *);
 };
 
-extern const struct puc_device_description puc_devices[];
+extern const struct puc_device_description puc_devs[];
 
 #define        PUC_NBARS       6
 struct puc_softc {