summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/hosts.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-04 07:40:19 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-04 07:40:19 +0000
commit33263fc5f9ac8e8cb2b22d06af3ce5ac1dd815e4 (patch)
tree2d1b86a40bef0958a68cf1a2eafbeb0667a70543 /drivers/scsi/hosts.h
parent216f5f51aa02f8b113aa620ebc14a9631a217a00 (diff)
Merge with Linux 2.3.32.
Diffstat (limited to 'drivers/scsi/hosts.h')
-rw-r--r--drivers/scsi/hosts.h38
1 files changed, 12 insertions, 26 deletions
diff --git a/drivers/scsi/hosts.h b/drivers/scsi/hosts.h
index ae3d13c66..18a9bf45c 100644
--- a/drivers/scsi/hosts.h
+++ b/drivers/scsi/hosts.h
@@ -1,6 +1,6 @@
/*
* hosts.h Copyright (C) 1992 Drew Eckhardt
- * Copyright (C) 1993, 1994, 1995 Eric Youngdale
+ * Copyright (C) 1993, 1994, 1995, 1998, 1999 Eric Youngdale
*
* mid to low-level SCSI driver interface header
* Initial versions: Drew Eckhardt
@@ -8,7 +8,7 @@
*
* <drew@colorado.edu>
*
- * Modified by Eric Youngdale eric@aib.com to
+ * Modified by Eric Youngdale eric@andante.org to
* add scatter-gather, multiple outstanding request, and other
* enhancements.
*
@@ -25,7 +25,6 @@
$Header: /vger/u4/cvs/linux/drivers/scsi/hosts.h,v 1.6 1997/01/19 23:07:13 davem Exp $
*/
-#include <linux/config.h>
#include <linux/proc_fs.h>
/* It is senseless to set SG_ALL any higher than this - the performance
@@ -302,13 +301,7 @@ struct Scsi_Host
*/
struct Scsi_Host * next;
Scsi_Device * host_queue;
- /*
- * List of commands that have been rejected because either the host
- * or the device was busy. These need to be retried relatively quickly,
- * but we need to hold onto it for a short period until the host/device
- * is available.
- */
- Scsi_Cmnd * pending_commands;
+
struct task_struct * ehandler; /* Error recovery thread. */
struct semaphore * eh_wait; /* The error recovery thread waits on
@@ -327,7 +320,6 @@ struct Scsi_Host
/* public: */
unsigned short extra_bytes;
unsigned short host_no; /* Used for IOCTL_GET_IDLUN, /proc/scsi et al. */
- char proc_name[4];
int resetting; /* if set, it means that last_reset is a valid value */
unsigned long last_reset;
@@ -342,16 +334,9 @@ struct Scsi_Host
unsigned int max_lun;
unsigned int max_channel;
- /*
- * Pointer to a circularly linked list - this indicates the hosts
- * that should be locked out of performing I/O while we have an active
- * command on this host.
- */
- struct Scsi_Host * block;
- unsigned wish_block:1;
/* These parameters should be set by the detect routine */
- unsigned char *base;
+ unsigned long base;
unsigned long io_port;
unsigned char n_io_port;
unsigned char dma_channel;
@@ -393,9 +378,14 @@ struct Scsi_Host
* Host uses correct SCSI ordering not PC ordering. The bit is
* set for the minority of drivers whose authors actually read the spec ;)
*/
-
unsigned reverse_ordering:1;
-
+
+ /*
+ * Indicates that one or more devices on this host were starved, and
+ * when the device becomes less busy that we need to feed them.
+ */
+ unsigned some_device_starved:1;
+
void (*select_queue_depths)(struct Scsi_Host *, Scsi_Device *);
/*
@@ -414,7 +404,6 @@ extern Scsi_Host_Template * scsi_hosts;
extern void build_proc_dir_entries(Scsi_Host_Template *);
-
/*
* scsi_init initializes the scsi hosts.
*/
@@ -458,6 +447,7 @@ struct Scsi_Device_Template
void (*finish)(void); /* Perform initialization after attachment */
int (*attach)(Scsi_Device *); /* Attach devices to arrays */
void (*detach)(Scsi_Device *);
+ int (*init_command)(Scsi_Cmnd *); /* Used by new queueing code. */
};
extern struct Scsi_Device_Template sd_template;
@@ -487,11 +477,7 @@ extern void scsi_unregister_module(int, void *);
* Even bigger hack for SparcSTORAGE arrays. Those are at least 6 disks, but
* usually up to 30 disks, so everyone would need to change this. -jj
*/
-#ifdef CONFIG_SCSI_PLUTO_MODULE
#define SD_EXTRA_DEVS 40
-#else
-#define SD_EXTRA_DEVS 4
-#endif
#define ST_EXTRA_DEVS 2
#define SR_EXTRA_DEVS 2
#define SG_EXTRA_DEVS (SD_EXTRA_DEVS + SR_EXTRA_DEVS + ST_EXTRA_DEVS)