Use symbolic constants instead of "4".
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 25 Nov 2007 17:59:22 +0000 (17:59 +0000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 25 Nov 2007 17:59:22 +0000 (17:59 +0000)
Use arrays instead of relying on struct packing.

Obtained-from: FreeBSD

sys/bus/cam/scsi/scsi_ch.c
sys/bus/cam/scsi/scsi_ch.h
sys/sys/chio.h

index b2ae0cd..c3cbdf0 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/cam/scsi/scsi_ch.c,v 1.20.2.2 2000/10/31 08:09:49 dwmalone Exp $
- * $DragonFly: src/sys/bus/cam/scsi/scsi_ch.c,v 1.24 2007/11/24 23:12:51 pavalos Exp $
+ * $DragonFly: src/sys/bus/cam/scsi/scsi_ch.c,v 1.25 2007/11/25 17:59:22 pavalos Exp $
  */
 /*
  * Derived from the NetBSD SCSI changer driver.
@@ -155,19 +155,19 @@ struct ch_softc {
         * The following information is obtained from the
         * element address assignment page.
         */
-       int             sc_firsts[4];   /* firsts, indexed by CHET_* */
-       int             sc_counts[4];   /* counts, indexed by CHET_* */
+       int             sc_firsts[CHET_MAX + 1];        /* firsts */
+       int             sc_counts[CHET_MAX + 1];        /* counts */
 
        /*
         * The following mask defines the legal combinations
         * of elements for the MOVE MEDIUM command.
         */
-       u_int8_t        sc_movemask[4];
+       u_int8_t        sc_movemask[CHET_MAX + 1];
 
        /*
         * As above, but for EXCHANGE MEDIUM.
         */
-       u_int8_t        sc_exchangemask[4];
+       u_int8_t        sc_exchangemask[CHET_MAX + 1];
 
        /*
         * Quirks; see below.  XXX KDM not implemented yet
@@ -1480,9 +1480,9 @@ chgetparams(struct cam_periph *periph)
 
        bzero(softc->sc_movemask, sizeof(softc->sc_movemask));
        bzero(softc->sc_exchangemask, sizeof(softc->sc_exchangemask));
-       moves = &cap->move_from_mt;
-       exchanges = &cap->exchange_with_mt;
-       for (from = CHET_MT; from <= CHET_DT; ++from) {
+       moves = cap->move_from;
+       exchanges = cap->exchange_with;
+       for (from = CHET_MT; from <= CHET_MAX; ++from) {
                softc->sc_movemask[from] = moves[from];
                softc->sc_exchangemask[from] = exchanges[from];
        }
index 91c8e15..c700209 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/sys/cam/scsi/scsi_ch.h,v 1.2.6.1 2000/08/03 00:50:59 peter Exp $ */
-/* $DragonFly: src/sys/bus/cam/scsi/scsi_ch.h,v 1.2 2003/06/17 04:28:19 dillon Exp $ */
+/* $DragonFly: src/sys/bus/cam/scsi/scsi_ch.h,v 1.3 2007/11/25 17:59:22 pavalos Exp $ */
 /*     $NetBSD: scsi_changer.h,v 1.11 1998/02/13 08:28:32 enami Exp $  */
 
 /*
@@ -65,6 +65,7 @@
 #define _SCSI_SCSI_CH_H 1
 
 #include <sys/cdefs.h>
+#include <sys/chio.h>
 
 /*
  * SCSI command format
@@ -340,10 +341,7 @@ struct page_device_capabilities {
         * MOVE MEDIUM command is legal.  The top four bits of each
         * of these values are reserved.
         */
-       u_int8_t        move_from_mt;
-       u_int8_t        move_from_st;
-       u_int8_t        move_from_ie;
-       u_int8_t        move_from_dt;
+       u_int8_t        move_from[CHET_MAX + 1];
 #define MOVE_TO_MT     0x01
 #define MOVE_TO_ST     0x02
 #define MOVE_TO_IE     0x04
@@ -354,10 +352,7 @@ struct page_device_capabilities {
        /*
         * Similar to above, but for EXCHANGE MEDIUM.
         */
-       u_int8_t        exchange_with_mt;
-       u_int8_t        exchange_with_st;
-       u_int8_t        exchange_with_ie;
-       u_int8_t        exchange_with_dt;
+       u_int8_t        exchange_with[CHET_MAX + 1];
 #define EXCHANGE_WITH_MT       0x01
 #define EXCHANGE_WITH_ST       0x02
 #define EXCHANGE_WITH_IE       0x04
index 327420a..ee89e63 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/sys/chio.h,v 1.15 1999/12/29 04:24:38 peter Exp $
- * $DragonFly: src/sys/sys/chio.h,v 1.3 2006/05/20 02:42:13 dillon Exp $
+ * $DragonFly: src/sys/sys/chio.h,v 1.4 2007/11/25 17:59:22 pavalos Exp $
  */
 
 #ifndef        _SYS_CHIO_H_
@@ -55,6 +55,7 @@
 #define CHET_ST                1       /* storage transport (slot) */
 #define CHET_IE                2       /* import/export (portal) */
 #define CHET_DT                3       /* data transfer (drive) */
+#define CHET_MAX       CHET_DT
 
 /*
  * Maximum length of a volume identification string