Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/ic Get rid of bogus ADW_CALLBACK typedef. Use the r...
details: https://anonhg.NetBSD.org/src/rev/62eabb917052
branches: trunk
changeset: 464437:62eabb917052
user: uwe <uwe%NetBSD.org@localhost>
date: Sun Oct 06 01:04:49 2019 +0000
description:
Get rid of bogus ADW_CALLBACK typedef. Use the real callback types
directly. Since we no longer need the casting dance we can get rid of
ADW_ISR_CALLBACK and ADW_ASYNC_CALLBACK typedefs too. The diff for
adwlib.h looks larger than it is b/c we need to reorder structure
definitions for the proper callback declaration. Found by gcc8
-Wcast-function-type.
diffstat:
sys/dev/ic/adw.c | 8 +-
sys/dev/ic/adwlib.c | 8 +-
sys/dev/ic/adwlib.h | 150 ++++++++++++++++++++++++++--------------------------
3 files changed, 83 insertions(+), 83 deletions(-)
diffs (236 lines):
diff -r 49f5c01e3882 -r 62eabb917052 sys/dev/ic/adw.c
--- a/sys/dev/ic/adw.c Sun Oct 06 00:48:19 2019 +0000
+++ b/sys/dev/ic/adw.c Sun Oct 06 01:04:49 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: adw.c,v 1.54 2016/07/14 04:19:26 msaitoh Exp $ */
+/* $NetBSD: adw.c,v 1.55 2019/10/06 01:04:49 uwe Exp $ */
/*
* Generic driver for the Advanced Systems Inc. SCSI controllers
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adw.c,v 1.54 2016/07/14 04:19:26 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adw.c,v 1.55 2019/10/06 01:04:49 uwe Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -398,8 +398,8 @@
"setting. Using automatic termination.\n");
}
- sc->isr_callback = (ADW_CALLBACK) adw_isr_callback;
- sc->async_callback = (ADW_CALLBACK) adw_async_callback;
+ sc->isr_callback = adw_isr_callback;
+ sc->async_callback = adw_async_callback;
return 0;
}
diff -r 49f5c01e3882 -r 62eabb917052 sys/dev/ic/adwlib.c
--- a/sys/dev/ic/adwlib.c Sun Oct 06 00:48:19 2019 +0000
+++ b/sys/dev/ic/adwlib.c Sun Oct 06 01:04:49 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: adwlib.c,v 1.42 2019/02/03 03:19:27 mrg Exp $ */
+/* $NetBSD: adwlib.c,v 1.43 2019/10/06 01:04:49 uwe Exp $ */
/*
* Low level routines for the Advanced Systems Inc. SCSI controllers chips
@@ -52,7 +52,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adwlib.c,v 1.42 2019/02/03 03:19:27 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adwlib.c,v 1.43 2019/10/06 01:04:49 uwe Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -2021,7 +2021,7 @@
}
if (sc->async_callback != 0) {
- (*(ADW_ASYNC_CALLBACK)sc->async_callback)(sc, intrb_code);
+ (*sc->async_callback)(sc, intrb_code);
}
}
@@ -2098,7 +2098,7 @@
* Notify the driver of the completed request by passing
* the ADW_SCSI_REQ_Q pointer to its callback function.
*/
- (*(ADW_ISR_CALLBACK)sc->isr_callback)(sc, scsiq);
+ (*sc->isr_callback)(sc, scsiq);
/*
* Note: After the driver callback function is called, 'scsiq'
* can no longer be referenced.
diff -r 49f5c01e3882 -r 62eabb917052 sys/dev/ic/adwlib.h
--- a/sys/dev/ic/adwlib.h Sun Oct 06 00:48:19 2019 +0000
+++ b/sys/dev/ic/adwlib.h Sun Oct 06 01:04:49 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: adwlib.h,v 1.21 2012/10/27 17:18:18 chs Exp $ */
+/* $NetBSD: adwlib.h,v 1.22 2019/10/06 01:04:49 uwe Exp $ */
/*
* Definitions for low level routines and data structures
@@ -717,80 +717,6 @@
/*
- * Adapter operation variable structure.
- *
- * One structure is required per host adapter.
- *
- * Field naming convention:
- *
- * *_able indicates both whether a feature should be enabled or disabled
- * and whether a device is capable of the feature. At initialization
- * this field may be set, but later if a device is found to be incapable
- * of the feature, the field is cleared.
- */
-#define CCB_HASH_SIZE 32 /* hash table size for phystokv */
-#define CCB_HASH_SHIFT 9
-#define CCB_HASH(x) ((((x)) >> CCB_HASH_SHIFT) & (CCB_HASH_SIZE - 1))
-
-typedef int (* ADW_CALLBACK) (int);
-
-typedef struct adw_softc {
-
- device_t sc_dev;
-
- bus_space_tag_t sc_iot;
- bus_space_handle_t sc_ioh;
- bus_dma_tag_t sc_dmat;
- bus_dmamap_t sc_dmamap_control; /* maps the control structures */
- bus_dmamap_t sc_dmamap_carrier; /* maps the carrier structures */
- void *sc_ih;
-
- struct adw_control *sc_control; /* control structures */
-
- struct adw_ccb *sc_ccbhash[CCB_HASH_SIZE];
- TAILQ_HEAD(, adw_ccb) sc_free_ccb, sc_waiting_ccb;
- TAILQ_HEAD(adw_pending_ccb, adw_ccb) sc_pending_ccb;
- struct scsipi_adapter sc_adapter;
- struct scsipi_channel sc_channel;
-
- int sc_freeze_dev[ADW_MAX_TID+1];
-
- ADW_CALLBACK isr_callback; /* pointer to function, called in AdwISR() */
- ADW_CALLBACK async_callback; /* pointer to function, called in AdwISR() */
- u_int16_t bios_ctrl; /* BIOS control word, EEPROM word 12 */
- u_int16_t wdtr_able; /* try WDTR for a device */
- u_int16_t sdtr_able; /* try SDTR for a device */
- u_int16_t ultra_able; /* try SDTR Ultra speed for a device */
- u_int16_t sdtr_speed1; /* EEPROM SDTR Speed for TID 0-3 */
- u_int16_t sdtr_speed2; /* EEPROM SDTR Speed for TID 4-7 */
- u_int16_t sdtr_speed3; /* EEPROM SDTR Speed for TID 8-11 */
- u_int16_t sdtr_speed4; /* EEPROM SDTR Speed for TID 12-15 */
- u_int16_t tagqng_able; /* try tagged queuing with a device */
- u_int16_t ppr_able; /* PPR message capable per TID bitmask. */
- u_int16_t start_motor; /* start motor command allowed */
- u_int8_t max_dvc_qng; /* maximum number of tagged commands per device */
- u_int8_t scsi_reset_wait; /* delay in seconds after scsi bus reset */
- u_int8_t chip_no; /* should be assigned by caller */
- u_int8_t max_host_qng; /* maximum number of Q'ed command allowed */
- u_int8_t irq_no; /* IRQ number */
- u_int8_t chip_type; /* chip SCSI target ID */
- u_int16_t no_scam; /* scam_tolerant of EEPROM */
- u_int32_t drv_ptr; /* driver pointer to private structure */
- u_int8_t chip_scsi_id; /* chip SCSI target ID */
- u_int8_t bist_err_code;
- u_int16_t carr_pending_cnt; /* Count of pending carriers. */
- struct adw_carrier *carr_freelist; /* Carrier free list. */
- struct adw_carrier *icq_sp; /* Initiator command queue stopper pointer. */
- struct adw_carrier *irq_sp; /* Initiator response queue stopper pointer. */
- /*
- * Note: The following fields will not be used after initialization. The
- * driver may discard the buffer after initialization is done.
- */
- ADW_DVC_CFG cfg; /* temporary configuration structure */
-} ADW_SOFTC;
-
-
-/*
* ADW_SCSI_REQ_Q - microcode request structure
*
* All fields in this structure up to byte 60 are used by the microcode.
@@ -884,6 +810,80 @@
/*
+ * Adapter operation variable structure.
+ *
+ * One structure is required per host adapter.
+ *
+ * Field naming convention:
+ *
+ * *_able indicates both whether a feature should be enabled or disabled
+ * and whether a device is capable of the feature. At initialization
+ * this field may be set, but later if a device is found to be incapable
+ * of the feature, the field is cleared.
+ */
+#define CCB_HASH_SIZE 32 /* hash table size for phystokv */
+#define CCB_HASH_SHIFT 9
+#define CCB_HASH(x) ((((x)) >> CCB_HASH_SHIFT) & (CCB_HASH_SIZE - 1))
+
+typedef struct adw_softc {
+
+ device_t sc_dev;
+
+ bus_space_tag_t sc_iot;
+ bus_space_handle_t sc_ioh;
+ bus_dma_tag_t sc_dmat;
+ bus_dmamap_t sc_dmamap_control; /* maps the control structures */
+ bus_dmamap_t sc_dmamap_carrier; /* maps the carrier structures */
+ void *sc_ih;
+
+ struct adw_control *sc_control; /* control structures */
+
+ struct adw_ccb *sc_ccbhash[CCB_HASH_SIZE];
+ TAILQ_HEAD(, adw_ccb) sc_free_ccb, sc_waiting_ccb;
+ TAILQ_HEAD(adw_pending_ccb, adw_ccb) sc_pending_ccb;
+ struct scsipi_adapter sc_adapter;
+ struct scsipi_channel sc_channel;
+
+ int sc_freeze_dev[ADW_MAX_TID+1];
+
+ /* pointers to functions, called in AdwISR() */
+ void (*isr_callback)(struct adw_softc *, ADW_SCSI_REQ_Q *);
+ void (*async_callback)(struct adw_softc *, u_int8_t);
+
+ u_int16_t bios_ctrl; /* BIOS control word, EEPROM word 12 */
+ u_int16_t wdtr_able; /* try WDTR for a device */
+ u_int16_t sdtr_able; /* try SDTR for a device */
+ u_int16_t ultra_able; /* try SDTR Ultra speed for a device */
+ u_int16_t sdtr_speed1; /* EEPROM SDTR Speed for TID 0-3 */
+ u_int16_t sdtr_speed2; /* EEPROM SDTR Speed for TID 4-7 */
+ u_int16_t sdtr_speed3; /* EEPROM SDTR Speed for TID 8-11 */
+ u_int16_t sdtr_speed4; /* EEPROM SDTR Speed for TID 12-15 */
+ u_int16_t tagqng_able; /* try tagged queuing with a device */
+ u_int16_t ppr_able; /* PPR message capable per TID bitmask. */
+ u_int16_t start_motor; /* start motor command allowed */
+ u_int8_t max_dvc_qng; /* maximum number of tagged commands per device */
+ u_int8_t scsi_reset_wait; /* delay in seconds after scsi bus reset */
+ u_int8_t chip_no; /* should be assigned by caller */
+ u_int8_t max_host_qng; /* maximum number of Q'ed command allowed */
+ u_int8_t irq_no; /* IRQ number */
+ u_int8_t chip_type; /* chip SCSI target ID */
+ u_int16_t no_scam; /* scam_tolerant of EEPROM */
+ u_int32_t drv_ptr; /* driver pointer to private structure */
+ u_int8_t chip_scsi_id; /* chip SCSI target ID */
+ u_int8_t bist_err_code;
+ u_int16_t carr_pending_cnt; /* Count of pending carriers. */
+ struct adw_carrier *carr_freelist; /* Carrier free list. */
+ struct adw_carrier *icq_sp; /* Initiator command queue stopper pointer. */
+ struct adw_carrier *irq_sp; /* Initiator response queue stopper pointer. */
+ /*
+ * Note: The following fields will not be used after initialization. The
+ * driver may discard the buffer after initialization is done.
+ */
+ ADW_DVC_CFG cfg; /* temporary configuration structure */
+} ADW_SOFTC;
+
+
+/*
* Microcode idle loop commands
*/
#define IDLE_CMD_COMPLETED 0
Home |
Main Index |
Thread Index |
Old Index