if (!blk_nohighio)
retval->highmem_io = tpnt->highmem_io;
- retval->select_queue_depths = tpnt->select_queue_depths;
retval->max_sectors = tpnt->max_sectors;
retval->use_blk_tcq = tpnt->use_blk_tcq;
*/
struct Scsi_Host * next;
Scsi_Device * host_queue;
+ struct list_head all_scsi_hosts;
+ struct list_head my_devices;
spinlock_t default_lock;
spinlock_t *host_lock;
*/
unsigned int max_host_blocked;
- void (*select_queue_depths)(struct Scsi_Host *, Scsi_Device *);
-
/*
* For SCSI hosts which are PCI devices, set pci_dev so that
* we can do BIOS EDD 3.0 mappings
*/
struct scsi_device *next; /* Used for linked list */
struct scsi_device *prev; /* Used for linked list */
+ struct list_head siblings; /* list of all devices on this host */
+ struct list_head same_target_siblings; /* just the devices sharing same target id */
wait_queue_head_t scpnt_wait; /* Used to wait if
device is busy */
struct Scsi_Host *host;
request_queue_t request_queue;
atomic_t device_active; /* commands checked out for device */
volatile unsigned short device_busy; /* commands actually active on low-level */
+ struct list_head free_cmnds; /* list of available Scsi_Cmnd structs */
+ struct list_head busy_cmnds; /* list of Scsi_Cmnd structs in use */
Scsi_Cmnd *device_queue; /* queue of SCSI Command structures */
Scsi_Cmnd *current_cmnd; /* currently active command */
unsigned short queue_depth; /* How deep of a queue we have */
Scsi_Request *sc_request;
struct scsi_cmnd *next;
struct scsi_cmnd *reset_chain;
+ struct list_head list_entry; /* Used to place us on the cmd lists */
int eh_state; /* Used for state tracking in error handlr */
int eh_eflags; /* Used by error handlr */