Commit ee0ca6ba authored by Henne's avatar Henne Committed by James Bottomley

[SCSI] scsi: Scsi_Cmnd convertion in arm subtree

Changes the obsolete Scsi_Cmnd to struct scsi_cmnd in the arm subdir
of the scsi-subsys.
Signed-off-by: default avatarHenrik Kretzschmar <henne@nachtwindheim.de>
Acked-by: default avatarRussell King <rmk@arm.linux.org.uk>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 1516b55d
...@@ -194,7 +194,8 @@ ...@@ -194,7 +194,8 @@
unsigned int sdtr_period = SDTR_PERIOD; unsigned int sdtr_period = SDTR_PERIOD;
unsigned int sdtr_size = SDTR_SIZE; unsigned int sdtr_size = SDTR_SIZE;
static void acornscsi_done(AS_Host *host, Scsi_Cmnd **SCpntp, unsigned int result); static void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp,
unsigned int result);
static int acornscsi_reconnect_finish(AS_Host *host); static int acornscsi_reconnect_finish(AS_Host *host);
static void acornscsi_dma_cleanup(AS_Host *host); static void acornscsi_dma_cleanup(AS_Host *host);
static void acornscsi_abortcmd(AS_Host *host, unsigned char tag); static void acornscsi_abortcmd(AS_Host *host, unsigned char tag);
...@@ -712,7 +713,7 @@ static ...@@ -712,7 +713,7 @@ static
intr_ret_t acornscsi_kick(AS_Host *host) intr_ret_t acornscsi_kick(AS_Host *host)
{ {
int from_queue = 0; int from_queue = 0;
Scsi_Cmnd *SCpnt; struct scsi_cmnd *SCpnt;
/* first check to see if a command is waiting to be executed */ /* first check to see if a command is waiting to be executed */
SCpnt = host->origSCpnt; SCpnt = host->origSCpnt;
...@@ -796,15 +797,15 @@ intr_ret_t acornscsi_kick(AS_Host *host) ...@@ -796,15 +797,15 @@ intr_ret_t acornscsi_kick(AS_Host *host)
} }
/* /*
* Function: void acornscsi_done(AS_Host *host, Scsi_Cmnd **SCpntp, unsigned int result) * Function: void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp, unsigned int result)
* Purpose : complete processing for command * Purpose : complete processing for command
* Params : host - interface that completed * Params : host - interface that completed
* result - driver byte of result * result - driver byte of result
*/ */
static static void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp,
void acornscsi_done(AS_Host *host, Scsi_Cmnd **SCpntp, unsigned int result) unsigned int result)
{ {
Scsi_Cmnd *SCpnt = *SCpntp; struct scsi_cmnd *SCpnt = *SCpntp;
/* clean up */ /* clean up */
sbic_arm_write(host->scsi.io_port, SBIC_SOURCEID, SOURCEID_ER | SOURCEID_DSP); sbic_arm_write(host->scsi.io_port, SBIC_SOURCEID, SOURCEID_ER | SOURCEID_DSP);
...@@ -1318,7 +1319,7 @@ acornscsi_write_pio(AS_Host *host, char *bytes, int *ptr, int len, unsigned int ...@@ -1318,7 +1319,7 @@ acornscsi_write_pio(AS_Host *host, char *bytes, int *ptr, int len, unsigned int
static void static void
acornscsi_sendcommand(AS_Host *host) acornscsi_sendcommand(AS_Host *host)
{ {
Scsi_Cmnd *SCpnt = host->SCpnt; struct scsi_cmnd *SCpnt = host->SCpnt;
sbic_arm_write(host->scsi.io_port, SBIC_TRANSCNTH, 0); sbic_arm_write(host->scsi.io_port, SBIC_TRANSCNTH, 0);
sbic_arm_writenext(host->scsi.io_port, 0); sbic_arm_writenext(host->scsi.io_port, 0);
...@@ -1693,7 +1694,7 @@ void acornscsi_message(AS_Host *host) ...@@ -1693,7 +1694,7 @@ void acornscsi_message(AS_Host *host)
acornscsi_sbic_issuecmd(host, CMND_ASSERTATN); acornscsi_sbic_issuecmd(host, CMND_ASSERTATN);
msgqueue_addmsg(&host->scsi.msgs, 1, ABORT); msgqueue_addmsg(&host->scsi.msgs, 1, ABORT);
} else { } else {
Scsi_Cmnd *SCpnt = host->SCpnt; struct scsi_cmnd *SCpnt = host->SCpnt;
acornscsi_dma_cleanup(host); acornscsi_dma_cleanup(host);
...@@ -2509,13 +2510,14 @@ acornscsi_intr(int irq, void *dev_id, struct pt_regs *regs) ...@@ -2509,13 +2510,14 @@ acornscsi_intr(int irq, void *dev_id, struct pt_regs *regs)
*/ */
/* /*
* Function : acornscsi_queuecmd(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *)) * Function : acornscsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
* Purpose : queues a SCSI command * Purpose : queues a SCSI command
* Params : cmd - SCSI command * Params : cmd - SCSI command
* done - function called on completion, with pointer to command descriptor * done - function called on completion, with pointer to command descriptor
* Returns : 0, or < 0 on error. * Returns : 0, or < 0 on error.
*/ */
int acornscsi_queuecmd(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) int acornscsi_queuecmd(struct scsi_cmnd *SCpnt,
void (*done)(struct scsi_cmnd *))
{ {
AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata;
...@@ -2565,17 +2567,18 @@ int acornscsi_queuecmd(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) ...@@ -2565,17 +2567,18 @@ int acornscsi_queuecmd(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
} }
/* /*
* Prototype: void acornscsi_reportstatus(Scsi_Cmnd **SCpntp1, Scsi_Cmnd **SCpntp2, int result) * Prototype: void acornscsi_reportstatus(struct scsi_cmnd **SCpntp1, struct scsi_cmnd **SCpntp2, int result)
* Purpose : pass a result to *SCpntp1, and check if *SCpntp1 = *SCpntp2 * Purpose : pass a result to *SCpntp1, and check if *SCpntp1 = *SCpntp2
* Params : SCpntp1 - pointer to command to return * Params : SCpntp1 - pointer to command to return
* SCpntp2 - pointer to command to check * SCpntp2 - pointer to command to check
* result - result to pass back to mid-level done function * result - result to pass back to mid-level done function
* Returns : *SCpntp2 = NULL if *SCpntp1 is the same command structure as *SCpntp2. * Returns : *SCpntp2 = NULL if *SCpntp1 is the same command structure as *SCpntp2.
*/ */
static inline static inline void acornscsi_reportstatus(struct scsi_cmnd **SCpntp1,
void acornscsi_reportstatus(Scsi_Cmnd **SCpntp1, Scsi_Cmnd **SCpntp2, int result) struct scsi_cmnd **SCpntp2,
int result)
{ {
Scsi_Cmnd *SCpnt = *SCpntp1; struct scsi_cmnd *SCpnt = *SCpntp1;
if (SCpnt) { if (SCpnt) {
*SCpntp1 = NULL; *SCpntp1 = NULL;
...@@ -2591,13 +2594,12 @@ void acornscsi_reportstatus(Scsi_Cmnd **SCpntp1, Scsi_Cmnd **SCpntp2, int result ...@@ -2591,13 +2594,12 @@ void acornscsi_reportstatus(Scsi_Cmnd **SCpntp1, Scsi_Cmnd **SCpntp2, int result
enum res_abort { res_not_running, res_success, res_success_clear, res_snooze }; enum res_abort { res_not_running, res_success, res_success_clear, res_snooze };
/* /*
* Prototype: enum res acornscsi_do_abort(Scsi_Cmnd *SCpnt) * Prototype: enum res acornscsi_do_abort(struct scsi_cmnd *SCpnt)
* Purpose : abort a command on this host * Purpose : abort a command on this host
* Params : SCpnt - command to abort * Params : SCpnt - command to abort
* Returns : our abort status * Returns : our abort status
*/ */
static enum res_abort static enum res_abort acornscsi_do_abort(AS_Host *host, struct scsi_cmnd *SCpnt)
acornscsi_do_abort(AS_Host *host, Scsi_Cmnd *SCpnt)
{ {
enum res_abort res = res_not_running; enum res_abort res = res_not_running;
...@@ -2684,12 +2686,12 @@ acornscsi_do_abort(AS_Host *host, Scsi_Cmnd *SCpnt) ...@@ -2684,12 +2686,12 @@ acornscsi_do_abort(AS_Host *host, Scsi_Cmnd *SCpnt)
} }
/* /*
* Prototype: int acornscsi_abort(Scsi_Cmnd *SCpnt) * Prototype: int acornscsi_abort(struct scsi_cmnd *SCpnt)
* Purpose : abort a command on this host * Purpose : abort a command on this host
* Params : SCpnt - command to abort * Params : SCpnt - command to abort
* Returns : one of SCSI_ABORT_ macros * Returns : one of SCSI_ABORT_ macros
*/ */
int acornscsi_abort(Scsi_Cmnd *SCpnt) int acornscsi_abort(struct scsi_cmnd *SCpnt)
{ {
AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata; AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata;
int result; int result;
...@@ -2770,16 +2772,16 @@ int acornscsi_abort(Scsi_Cmnd *SCpnt) ...@@ -2770,16 +2772,16 @@ int acornscsi_abort(Scsi_Cmnd *SCpnt)
} }
/* /*
* Prototype: int acornscsi_reset(Scsi_Cmnd *SCpnt, unsigned int reset_flags) * Prototype: int acornscsi_reset(struct scsi_cmnd *SCpnt, unsigned int reset_flags)
* Purpose : reset a command on this host/reset this host * Purpose : reset a command on this host/reset this host
* Params : SCpnt - command causing reset * Params : SCpnt - command causing reset
* result - what type of reset to perform * result - what type of reset to perform
* Returns : one of SCSI_RESET_ macros * Returns : one of SCSI_RESET_ macros
*/ */
int acornscsi_reset(Scsi_Cmnd *SCpnt, unsigned int reset_flags) int acornscsi_reset(struct scsi_cmnd *SCpnt, unsigned int reset_flags)
{ {
AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata;
Scsi_Cmnd *SCptr; struct scsi_cmnd *SCptr;
host->stats.resets += 1; host->stats.resets += 1;
......
...@@ -277,8 +277,8 @@ struct status_entry { ...@@ -277,8 +277,8 @@ struct status_entry {
typedef struct acornscsi_hostdata { typedef struct acornscsi_hostdata {
/* miscellaneous */ /* miscellaneous */
struct Scsi_Host *host; /* host */ struct Scsi_Host *host; /* host */
Scsi_Cmnd *SCpnt; /* currently processing command */ struct scsi_cmnd *SCpnt; /* currently processing command */
Scsi_Cmnd *origSCpnt; /* original connecting command */ struct scsi_cmnd *origSCpnt; /* original connecting command */
/* driver information */ /* driver information */
struct { struct {
......
...@@ -297,8 +297,8 @@ fas216_do_log(FAS216_Info *info, char target, char *fmt, va_list ap) ...@@ -297,8 +297,8 @@ fas216_do_log(FAS216_Info *info, char target, char *fmt, va_list ap)
printk("scsi%d.%c: %s", info->host->host_no, target, buf); printk("scsi%d.%c: %s", info->host->host_no, target, buf);
} }
static void static void fas216_log_command(FAS216_Info *info, int level,
fas216_log_command(FAS216_Info *info, int level, Scsi_Cmnd *SCpnt, char *fmt, ...) struct scsi_cmnd *SCpnt, char *fmt, ...)
{ {
va_list args; va_list args;
...@@ -1662,7 +1662,7 @@ irqreturn_t fas216_intr(FAS216_Info *info) ...@@ -1662,7 +1662,7 @@ irqreturn_t fas216_intr(FAS216_Info *info)
return handled; return handled;
} }
static void __fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt) static void __fas216_start_command(FAS216_Info *info, struct scsi_cmnd *SCpnt)
{ {
int tot_msglen; int tot_msglen;
...@@ -1754,7 +1754,7 @@ static int parity_test(FAS216_Info *info, int target) ...@@ -1754,7 +1754,7 @@ static int parity_test(FAS216_Info *info, int target)
return info->device[target].parity_check; return info->device[target].parity_check;
} }
static void fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt) static void fas216_start_command(FAS216_Info *info, struct scsi_cmnd *SCpnt)
{ {
int disconnect_ok; int disconnect_ok;
...@@ -1808,7 +1808,7 @@ static void fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt) ...@@ -1808,7 +1808,7 @@ static void fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
__fas216_start_command(info, SCpnt); __fas216_start_command(info, SCpnt);
} }
static void fas216_allocate_tag(FAS216_Info *info, Scsi_Cmnd *SCpnt) static void fas216_allocate_tag(FAS216_Info *info, struct scsi_cmnd *SCpnt)
{ {
#ifdef SCSI2_TAG #ifdef SCSI2_TAG
/* /*
...@@ -1842,7 +1842,8 @@ static void fas216_allocate_tag(FAS216_Info *info, Scsi_Cmnd *SCpnt) ...@@ -1842,7 +1842,8 @@ static void fas216_allocate_tag(FAS216_Info *info, Scsi_Cmnd *SCpnt)
} }
} }
static void fas216_do_bus_device_reset(FAS216_Info *info, Scsi_Cmnd *SCpnt) static void fas216_do_bus_device_reset(FAS216_Info *info,
struct scsi_cmnd *SCpnt)
{ {
struct message *msg; struct message *msg;
...@@ -1890,7 +1891,7 @@ static void fas216_do_bus_device_reset(FAS216_Info *info, Scsi_Cmnd *SCpnt) ...@@ -1890,7 +1891,7 @@ static void fas216_do_bus_device_reset(FAS216_Info *info, Scsi_Cmnd *SCpnt)
*/ */
static void fas216_kick(FAS216_Info *info) static void fas216_kick(FAS216_Info *info)
{ {
Scsi_Cmnd *SCpnt = NULL; struct scsi_cmnd *SCpnt = NULL;
#define TYPE_OTHER 0 #define TYPE_OTHER 0
#define TYPE_RESET 1 #define TYPE_RESET 1
#define TYPE_QUEUE 2 #define TYPE_QUEUE 2
...@@ -1978,8 +1979,8 @@ static void fas216_kick(FAS216_Info *info) ...@@ -1978,8 +1979,8 @@ static void fas216_kick(FAS216_Info *info)
/* /*
* Clean up from issuing a BUS DEVICE RESET message to a device. * Clean up from issuing a BUS DEVICE RESET message to a device.
*/ */
static void static void fas216_devicereset_done(FAS216_Info *info, struct scsi_cmnd *SCpnt,
fas216_devicereset_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result) unsigned int result)
{ {
fas216_log(info, LOG_ERROR, "fas216 device reset complete"); fas216_log(info, LOG_ERROR, "fas216 device reset complete");
...@@ -1996,8 +1997,8 @@ fas216_devicereset_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result ...@@ -1996,8 +1997,8 @@ fas216_devicereset_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result
* *
* Finish processing automatic request sense command * Finish processing automatic request sense command
*/ */
static void static void fas216_rq_sns_done(FAS216_Info *info, struct scsi_cmnd *SCpnt,
fas216_rq_sns_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result) unsigned int result)
{ {
fas216_log_target(info, LOG_CONNECT, SCpnt->device->id, fas216_log_target(info, LOG_CONNECT, SCpnt->device->id,
"request sense complete, result=0x%04x%02x%02x", "request sense complete, result=0x%04x%02x%02x",
...@@ -2030,7 +2031,7 @@ fas216_rq_sns_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result) ...@@ -2030,7 +2031,7 @@ fas216_rq_sns_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result)
* Finish processing of standard command * Finish processing of standard command
*/ */
static void static void
fas216_std_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result) fas216_std_done(FAS216_Info *info, struct scsi_cmnd *SCpnt, unsigned int result)
{ {
info->stats.fins += 1; info->stats.fins += 1;
...@@ -2142,8 +2143,8 @@ fas216_std_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result) ...@@ -2142,8 +2143,8 @@ fas216_std_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result)
*/ */
static void fas216_done(FAS216_Info *info, unsigned int result) static void fas216_done(FAS216_Info *info, unsigned int result)
{ {
void (*fn)(FAS216_Info *, Scsi_Cmnd *, unsigned int); void (*fn)(FAS216_Info *, struct scsi_cmnd *, unsigned int);
Scsi_Cmnd *SCpnt; struct scsi_cmnd *SCpnt;
unsigned long flags; unsigned long flags;
fas216_checkmagic(info); fas216_checkmagic(info);
...@@ -2182,7 +2183,7 @@ static void fas216_done(FAS216_Info *info, unsigned int result) ...@@ -2182,7 +2183,7 @@ static void fas216_done(FAS216_Info *info, unsigned int result)
info->device[SCpnt->device->id].parity_check = 0; info->device[SCpnt->device->id].parity_check = 0;
clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, info->busyluns); clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, info->busyluns);
fn = (void (*)(FAS216_Info *, Scsi_Cmnd *, unsigned int))SCpnt->host_scribble; fn = (void (*)(FAS216_Info *, struct scsi_cmnd *, unsigned int))SCpnt->host_scribble;
fn(info, SCpnt, result); fn(info, SCpnt, result);
if (info->scsi.irq != NO_IRQ) { if (info->scsi.irq != NO_IRQ) {
...@@ -2207,7 +2208,8 @@ static void fas216_done(FAS216_Info *info, unsigned int result) ...@@ -2207,7 +2208,8 @@ static void fas216_done(FAS216_Info *info, unsigned int result)
* Returns: 0 on success, else error. * Returns: 0 on success, else error.
* Notes: io_request_lock is held, interrupts are disabled. * Notes: io_request_lock is held, interrupts are disabled.
*/ */
int fas216_queue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) int fas216_queue_command(struct scsi_cmnd *SCpnt,
void (*done)(struct scsi_cmnd *))
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
int result; int result;
...@@ -2254,7 +2256,7 @@ int fas216_queue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) ...@@ -2254,7 +2256,7 @@ int fas216_queue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
* *
* Trigger restart of a waiting thread in fas216_command * Trigger restart of a waiting thread in fas216_command
*/ */
static void fas216_internal_done(Scsi_Cmnd *SCpnt) static void fas216_internal_done(struct scsi_cmnd *SCpnt)
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
...@@ -2271,7 +2273,8 @@ static void fas216_internal_done(Scsi_Cmnd *SCpnt) ...@@ -2271,7 +2273,8 @@ static void fas216_internal_done(Scsi_Cmnd *SCpnt)
* Returns: scsi result code. * Returns: scsi result code.
* Notes: io_request_lock is held, interrupts are disabled. * Notes: io_request_lock is held, interrupts are disabled.
*/ */
int fas216_noqueue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) int fas216_noqueue_command(struct scsi_cmnd *SCpnt,
void (*done)(struct scsi_cmnd *))
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
...@@ -2350,7 +2353,8 @@ enum res_find { ...@@ -2350,7 +2353,8 @@ enum res_find {
* Decide how to abort a command. * Decide how to abort a command.
* Returns: abort status * Returns: abort status
*/ */
static enum res_find fas216_find_command(FAS216_Info *info, Scsi_Cmnd *SCpnt) static enum res_find fas216_find_command(FAS216_Info *info,
struct scsi_cmnd *SCpnt)
{ {
enum res_find res = res_failed; enum res_find res = res_failed;
...@@ -2417,7 +2421,7 @@ static enum res_find fas216_find_command(FAS216_Info *info, Scsi_Cmnd *SCpnt) ...@@ -2417,7 +2421,7 @@ static enum res_find fas216_find_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
* Returns: FAILED if unable to abort * Returns: FAILED if unable to abort
* Notes: io_request_lock is taken, and irqs are disabled * Notes: io_request_lock is taken, and irqs are disabled
*/ */
int fas216_eh_abort(Scsi_Cmnd *SCpnt) int fas216_eh_abort(struct scsi_cmnd *SCpnt)
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
int result = FAILED; int result = FAILED;
...@@ -2474,7 +2478,7 @@ int fas216_eh_abort(Scsi_Cmnd *SCpnt) ...@@ -2474,7 +2478,7 @@ int fas216_eh_abort(Scsi_Cmnd *SCpnt)
* Notes: We won't be re-entered, so we'll only have one device * Notes: We won't be re-entered, so we'll only have one device
* reset on the go at one time. * reset on the go at one time.
*/ */
int fas216_eh_device_reset(Scsi_Cmnd *SCpnt) int fas216_eh_device_reset(struct scsi_cmnd *SCpnt)
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
unsigned long flags; unsigned long flags;
...@@ -2555,7 +2559,7 @@ int fas216_eh_device_reset(Scsi_Cmnd *SCpnt) ...@@ -2555,7 +2559,7 @@ int fas216_eh_device_reset(Scsi_Cmnd *SCpnt)
* Returns: FAILED if unable to reset. * Returns: FAILED if unable to reset.
* Notes: Further commands are blocked. * Notes: Further commands are blocked.
*/ */
int fas216_eh_bus_reset(Scsi_Cmnd *SCpnt) int fas216_eh_bus_reset(struct scsi_cmnd *SCpnt)
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
unsigned long flags; unsigned long flags;
...@@ -2655,7 +2659,7 @@ static void fas216_init_chip(FAS216_Info *info) ...@@ -2655,7 +2659,7 @@ static void fas216_init_chip(FAS216_Info *info)
* Returns: FAILED if unable to reset. * Returns: FAILED if unable to reset.
* Notes: io_request_lock is taken, and irqs are disabled * Notes: io_request_lock is taken, and irqs are disabled
*/ */
int fas216_eh_host_reset(Scsi_Cmnd *SCpnt) int fas216_eh_host_reset(struct scsi_cmnd *SCpnt)
{ {
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
......
...@@ -218,11 +218,11 @@ typedef struct { ...@@ -218,11 +218,11 @@ typedef struct {
unsigned long magic_start; unsigned long magic_start;
spinlock_t host_lock; spinlock_t host_lock;
struct Scsi_Host *host; /* host */ struct Scsi_Host *host; /* host */
Scsi_Cmnd *SCpnt; /* currently processing command */ struct scsi_cmnd *SCpnt; /* currently processing command */
Scsi_Cmnd *origSCpnt; /* original connecting command */ struct scsi_cmnd *origSCpnt; /* original connecting command */
Scsi_Cmnd *reqSCpnt; /* request sense command */ struct scsi_cmnd *reqSCpnt; /* request sense command */
Scsi_Cmnd *rstSCpnt; /* reset command */ struct scsi_cmnd *rstSCpnt; /* reset command */
Scsi_Cmnd *pending_SCpnt[8]; /* per-device pending commands */ struct scsi_cmnd *pending_SCpnt[8]; /* per-device pending commands */
int next_pending; /* next pending device */ int next_pending; /* next pending device */
/* /*
...@@ -328,21 +328,23 @@ extern int fas216_init (struct Scsi_Host *instance); ...@@ -328,21 +328,23 @@ extern int fas216_init (struct Scsi_Host *instance);
*/ */
extern int fas216_add (struct Scsi_Host *instance, struct device *dev); extern int fas216_add (struct Scsi_Host *instance, struct device *dev);
/* Function: int fas216_queue_command (Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) /* Function: int fas216_queue_command(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
* Purpose : queue a command for adapter to process. * Purpose : queue a command for adapter to process.
* Params : SCpnt - Command to queue * Params : SCpnt - Command to queue
* done - done function to call once command is complete * done - done function to call once command is complete
* Returns : 0 - success, else error * Returns : 0 - success, else error
*/ */
extern int fas216_queue_command (Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); extern int fas216_queue_command(struct scsi_cmnd *,
void (*done)(struct scsi_cmnd *));
/* Function: int fas216_noqueue_command (Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) /* Function: int fas216_noqueue_command(istruct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
* Purpose : queue a command for adapter to process, and process it to completion. * Purpose : queue a command for adapter to process, and process it to completion.
* Params : SCpnt - Command to queue * Params : SCpnt - Command to queue
* done - done function to call once command is complete * done - done function to call once command is complete
* Returns : 0 - success, else error * Returns : 0 - success, else error
*/ */
extern int fas216_noqueue_command (Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); extern int fas216_noqueue_command(struct scsi_cmnd *,
void (*done)(struct scsi_cmnd *));
/* Function: irqreturn_t fas216_intr (FAS216_Info *info) /* Function: irqreturn_t fas216_intr (FAS216_Info *info)
* Purpose : handle interrupts from the interface to progress a command * Purpose : handle interrupts from the interface to progress a command
...@@ -363,32 +365,32 @@ extern int fas216_print_host(FAS216_Info *info, char *buffer); ...@@ -363,32 +365,32 @@ extern int fas216_print_host(FAS216_Info *info, char *buffer);
extern int fas216_print_stats(FAS216_Info *info, char *buffer); extern int fas216_print_stats(FAS216_Info *info, char *buffer);
extern int fas216_print_devices(FAS216_Info *info, char *buffer); extern int fas216_print_devices(FAS216_Info *info, char *buffer);
/* Function: int fas216_eh_abort(Scsi_Cmnd *SCpnt) /* Function: int fas216_eh_abort(struct scsi_cmnd *SCpnt)
* Purpose : abort this command * Purpose : abort this command
* Params : SCpnt - command to abort * Params : SCpnt - command to abort
* Returns : FAILED if unable to abort * Returns : FAILED if unable to abort
*/ */
extern int fas216_eh_abort(Scsi_Cmnd *SCpnt); extern int fas216_eh_abort(struct scsi_cmnd *SCpnt);
/* Function: int fas216_eh_device_reset(Scsi_Cmnd *SCpnt) /* Function: int fas216_eh_device_reset(struct scsi_cmnd *SCpnt)
* Purpose : Reset the device associated with this command * Purpose : Reset the device associated with this command
* Params : SCpnt - command specifing device to reset * Params : SCpnt - command specifing device to reset
* Returns : FAILED if unable to reset * Returns : FAILED if unable to reset
*/ */
extern int fas216_eh_device_reset(Scsi_Cmnd *SCpnt); extern int fas216_eh_device_reset(struct scsi_cmnd *SCpnt);
/* Function: int fas216_eh_bus_reset(Scsi_Cmnd *SCpnt) /* Function: int fas216_eh_bus_reset(struct scsi_cmnd *SCpnt)
* Purpose : Reset the complete bus associated with this command * Purpose : Reset the complete bus associated with this command
* Params : SCpnt - command specifing bus to reset * Params : SCpnt - command specifing bus to reset
* Returns : FAILED if unable to reset * Returns : FAILED if unable to reset
*/ */
extern int fas216_eh_bus_reset(Scsi_Cmnd *SCpnt); extern int fas216_eh_bus_reset(struct scsi_cmnd *SCpnt);
/* Function: int fas216_eh_host_reset(Scsi_Cmnd *SCpnt) /* Function: int fas216_eh_host_reset(struct scsi_cmnd *SCpnt)
* Purpose : Reset the host associated with this command * Purpose : Reset the host associated with this command
* Params : SCpnt - command specifing host to reset * Params : SCpnt - command specifing host to reset
* Returns : FAILED if unable to reset * Returns : FAILED if unable to reset
*/ */
extern int fas216_eh_host_reset(Scsi_Cmnd *SCpnt); extern int fas216_eh_host_reset(struct scsi_cmnd *SCpnt);
#endif /* FAS216_H */ #endif /* FAS216_H */
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
typedef struct queue_entry { typedef struct queue_entry {
struct list_head list; struct list_head list;
Scsi_Cmnd *SCpnt; struct scsi_cmnd *SCpnt;
#ifdef DEBUG #ifdef DEBUG
unsigned long magic; unsigned long magic;
#endif #endif
...@@ -96,14 +96,14 @@ void queue_free (Queue_t *queue) ...@@ -96,14 +96,14 @@ void queue_free (Queue_t *queue)
/* /*
* Function: int queue_add_cmd(Queue_t *queue, Scsi_Cmnd *SCpnt, int head) * Function: int __queue_add(Queue_t *queue, struct scsi_cmnd *SCpnt, int head)
* Purpose : Add a new command onto a queue, adding REQUEST_SENSE to head. * Purpose : Add a new command onto a queue, adding REQUEST_SENSE to head.
* Params : queue - destination queue * Params : queue - destination queue
* SCpnt - command to add * SCpnt - command to add
* head - add command to head of queue * head - add command to head of queue
* Returns : 0 on error, !0 on success * Returns : 0 on error, !0 on success
*/ */
int __queue_add(Queue_t *queue, Scsi_Cmnd *SCpnt, int head) int __queue_add(Queue_t *queue, struct scsi_cmnd *SCpnt, int head)
{ {
unsigned long flags; unsigned long flags;
struct list_head *l; struct list_head *l;
...@@ -134,7 +134,7 @@ int __queue_add(Queue_t *queue, Scsi_Cmnd *SCpnt, int head) ...@@ -134,7 +134,7 @@ int __queue_add(Queue_t *queue, Scsi_Cmnd *SCpnt, int head)
return ret; return ret;
} }
static Scsi_Cmnd *__queue_remove(Queue_t *queue, struct list_head *ent) static struct scsi_cmnd *__queue_remove(Queue_t *queue, struct list_head *ent)
{ {
QE_t *q; QE_t *q;
...@@ -152,17 +152,17 @@ static Scsi_Cmnd *__queue_remove(Queue_t *queue, struct list_head *ent) ...@@ -152,17 +152,17 @@ static Scsi_Cmnd *__queue_remove(Queue_t *queue, struct list_head *ent)
} }
/* /*
* Function: Scsi_Cmnd *queue_remove_exclude (queue, exclude) * Function: struct scsi_cmnd *queue_remove_exclude (queue, exclude)
* Purpose : remove a SCSI command from a queue * Purpose : remove a SCSI command from a queue
* Params : queue - queue to remove command from * Params : queue - queue to remove command from
* exclude - bit array of target&lun which is busy * exclude - bit array of target&lun which is busy
* Returns : Scsi_Cmnd if successful (and a reference), or NULL if no command available * Returns : struct scsi_cmnd if successful (and a reference), or NULL if no command available
*/ */
Scsi_Cmnd *queue_remove_exclude(Queue_t *queue, unsigned long *exclude) struct scsi_cmnd *queue_remove_exclude(Queue_t *queue, unsigned long *exclude)
{ {
unsigned long flags; unsigned long flags;
struct list_head *l; struct list_head *l;
Scsi_Cmnd *SCpnt = NULL; struct scsi_cmnd *SCpnt = NULL;
spin_lock_irqsave(&queue->queue_lock, flags); spin_lock_irqsave(&queue->queue_lock, flags);
list_for_each(l, &queue->head) { list_for_each(l, &queue->head) {
...@@ -178,15 +178,15 @@ Scsi_Cmnd *queue_remove_exclude(Queue_t *queue, unsigned long *exclude) ...@@ -178,15 +178,15 @@ Scsi_Cmnd *queue_remove_exclude(Queue_t *queue, unsigned long *exclude)
} }
/* /*
* Function: Scsi_Cmnd *queue_remove (queue) * Function: struct scsi_cmnd *queue_remove (queue)
* Purpose : removes first SCSI command from a queue * Purpose : removes first SCSI command from a queue
* Params : queue - queue to remove command from * Params : queue - queue to remove command from
* Returns : Scsi_Cmnd if successful (and a reference), or NULL if no command available * Returns : struct scsi_cmnd if successful (and a reference), or NULL if no command available
*/ */
Scsi_Cmnd *queue_remove(Queue_t *queue) struct scsi_cmnd *queue_remove(Queue_t *queue)
{ {
unsigned long flags; unsigned long flags;
Scsi_Cmnd *SCpnt = NULL; struct scsi_cmnd *SCpnt = NULL;
spin_lock_irqsave(&queue->queue_lock, flags); spin_lock_irqsave(&queue->queue_lock, flags);
if (!list_empty(&queue->head)) if (!list_empty(&queue->head))
...@@ -197,19 +197,20 @@ Scsi_Cmnd *queue_remove(Queue_t *queue) ...@@ -197,19 +197,20 @@ Scsi_Cmnd *queue_remove(Queue_t *queue)
} }
/* /*
* Function: Scsi_Cmnd *queue_remove_tgtluntag (queue, target, lun, tag) * Function: struct scsi_cmnd *queue_remove_tgtluntag (queue, target, lun, tag)
* Purpose : remove a SCSI command from the queue for a specified target/lun/tag * Purpose : remove a SCSI command from the queue for a specified target/lun/tag
* Params : queue - queue to remove command from * Params : queue - queue to remove command from
* target - target that we want * target - target that we want
* lun - lun on device * lun - lun on device
* tag - tag on device * tag - tag on device
* Returns : Scsi_Cmnd if successful, or NULL if no command satisfies requirements * Returns : struct scsi_cmnd if successful, or NULL if no command satisfies requirements
*/ */
Scsi_Cmnd *queue_remove_tgtluntag (Queue_t *queue, int target, int lun, int tag) struct scsi_cmnd *queue_remove_tgtluntag(Queue_t *queue, int target, int lun,
int tag)
{ {
unsigned long flags; unsigned long flags;
struct list_head *l; struct list_head *l;
Scsi_Cmnd *SCpnt = NULL; struct scsi_cmnd *SCpnt = NULL;
spin_lock_irqsave(&queue->queue_lock, flags); spin_lock_irqsave(&queue->queue_lock, flags);
list_for_each(l, &queue->head) { list_for_each(l, &queue->head) {
...@@ -275,13 +276,13 @@ int queue_probetgtlun (Queue_t *queue, int target, int lun) ...@@ -275,13 +276,13 @@ int queue_probetgtlun (Queue_t *queue, int target, int lun)
} }
/* /*
* Function: int queue_remove_cmd(Queue_t *queue, Scsi_Cmnd *SCpnt) * Function: int queue_remove_cmd(Queue_t *queue, struct scsi_cmnd *SCpnt)
* Purpose : remove a specific command from the queues * Purpose : remove a specific command from the queues
* Params : queue - queue to look in * Params : queue - queue to look in
* SCpnt - command to find * SCpnt - command to find
* Returns : 0 if not found * Returns : 0 if not found
*/ */
int queue_remove_cmd(Queue_t *queue, Scsi_Cmnd *SCpnt) int queue_remove_cmd(Queue_t *queue, struct scsi_cmnd *SCpnt)
{ {
unsigned long flags; unsigned long flags;
struct list_head *l; struct list_head *l;
......
...@@ -32,46 +32,48 @@ extern int queue_initialise (Queue_t *queue); ...@@ -32,46 +32,48 @@ extern int queue_initialise (Queue_t *queue);
extern void queue_free (Queue_t *queue); extern void queue_free (Queue_t *queue);
/* /*
* Function: Scsi_Cmnd *queue_remove (queue) * Function: struct scsi_cmnd *queue_remove (queue)
* Purpose : removes first SCSI command from a queue * Purpose : removes first SCSI command from a queue
* Params : queue - queue to remove command from * Params : queue - queue to remove command from
* Returns : Scsi_Cmnd if successful (and a reference), or NULL if no command available * Returns : struct scsi_cmnd if successful (and a reference), or NULL if no command available
*/ */
extern Scsi_Cmnd *queue_remove (Queue_t *queue); extern struct scsi_cmnd *queue_remove (Queue_t *queue);
/* /*
* Function: Scsi_Cmnd *queue_remove_exclude_ref (queue, exclude) * Function: struct scsi_cmnd *queue_remove_exclude_ref (queue, exclude)
* Purpose : remove a SCSI command from a queue * Purpose : remove a SCSI command from a queue
* Params : queue - queue to remove command from * Params : queue - queue to remove command from
* exclude - array of busy LUNs * exclude - array of busy LUNs
* Returns : Scsi_Cmnd if successful (and a reference), or NULL if no command available * Returns : struct scsi_cmnd if successful (and a reference), or NULL if no command available
*/ */
extern Scsi_Cmnd *queue_remove_exclude (Queue_t *queue, unsigned long *exclude); extern struct scsi_cmnd *queue_remove_exclude(Queue_t *queue,
unsigned long *exclude);
#define queue_add_cmd_ordered(queue,SCpnt) \ #define queue_add_cmd_ordered(queue,SCpnt) \
__queue_add(queue,SCpnt,(SCpnt)->cmnd[0] == REQUEST_SENSE) __queue_add(queue,SCpnt,(SCpnt)->cmnd[0] == REQUEST_SENSE)
#define queue_add_cmd_tail(queue,SCpnt) \ #define queue_add_cmd_tail(queue,SCpnt) \
__queue_add(queue,SCpnt,0) __queue_add(queue,SCpnt,0)
/* /*
* Function: int __queue_add(Queue_t *queue, Scsi_Cmnd *SCpnt, int head) * Function: int __queue_add(Queue_t *queue, struct scsi_cmnd *SCpnt, int head)
* Purpose : Add a new command onto a queue * Purpose : Add a new command onto a queue
* Params : queue - destination queue * Params : queue - destination queue
* SCpnt - command to add * SCpnt - command to add
* head - add command to head of queue * head - add command to head of queue
* Returns : 0 on error, !0 on success * Returns : 0 on error, !0 on success
*/ */
extern int __queue_add(Queue_t *queue, Scsi_Cmnd *SCpnt, int head); extern int __queue_add(Queue_t *queue, struct scsi_cmnd *SCpnt, int head);
/* /*
* Function: Scsi_Cmnd *queue_remove_tgtluntag (queue, target, lun, tag) * Function: struct scsi_cmnd *queue_remove_tgtluntag (queue, target, lun, tag)
* Purpose : remove a SCSI command from the queue for a specified target/lun/tag * Purpose : remove a SCSI command from the queue for a specified target/lun/tag
* Params : queue - queue to remove command from * Params : queue - queue to remove command from
* target - target that we want * target - target that we want
* lun - lun on device * lun - lun on device
* tag - tag on device * tag - tag on device
* Returns : Scsi_Cmnd if successful, or NULL if no command satisfies requirements * Returns : struct scsi_cmnd if successful, or NULL if no command satisfies requirements
*/ */
extern Scsi_Cmnd *queue_remove_tgtluntag (Queue_t *queue, int target, int lun, int tag); extern struct scsi_cmnd *queue_remove_tgtluntag(Queue_t *queue, int target,
int lun, int tag);
/* /*
* Function: queue_remove_all_target(queue, target) * Function: queue_remove_all_target(queue, target)
...@@ -94,12 +96,12 @@ extern void queue_remove_all_target(Queue_t *queue, int target); ...@@ -94,12 +96,12 @@ extern void queue_remove_all_target(Queue_t *queue, int target);
extern int queue_probetgtlun (Queue_t *queue, int target, int lun); extern int queue_probetgtlun (Queue_t *queue, int target, int lun);
/* /*
* Function: int queue_remove_cmd (Queue_t *queue, Scsi_Cmnd *SCpnt) * Function: int queue_remove_cmd (Queue_t *queue, struct scsi_cmnd *SCpnt)
* Purpose : remove a specific command from the queues * Purpose : remove a specific command from the queues
* Params : queue - queue to look in * Params : queue - queue to look in
* SCpnt - command to find * SCpnt - command to find
* Returns : 0 if not found * Returns : 0 if not found
*/ */
int queue_remove_cmd(Queue_t *queue, Scsi_Cmnd *SCpnt); int queue_remove_cmd(Queue_t *queue, struct scsi_cmnd *SCpnt);
#endif /* QUEUE_H */ #endif /* QUEUE_H */
...@@ -66,7 +66,7 @@ static inline void put_next_SCp_byte(struct scsi_pointer *SCp, unsigned char c) ...@@ -66,7 +66,7 @@ static inline void put_next_SCp_byte(struct scsi_pointer *SCp, unsigned char c)
SCp->this_residual -= 1; SCp->this_residual -= 1;
} }
static inline void init_SCp(Scsi_Cmnd *SCpnt) static inline void init_SCp(struct scsi_cmnd *SCpnt)
{ {
memset(&SCpnt->SCp, 0, sizeof(struct scsi_pointer)); memset(&SCpnt->SCp, 0, sizeof(struct scsi_pointer));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment