git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
drivers
/
block
/
cciss.h
diff --git
a/drivers/block/cciss.h
b/drivers/block/cciss.h
index
8ab689c
..
b24fc05
100644
(file)
--- a/
drivers/block/cciss.h
+++ b/
drivers/block/cciss.h
@@
-27,14
+27,29
@@
typedef struct _drive_info_struct
{
__u32 LunID;
int usage_count;
{
__u32 LunID;
int usage_count;
+ struct request_queue *queue;
sector_t nr_blocks;
int block_size;
int heads;
int sectors;
int cylinders;
sector_t nr_blocks;
int block_size;
int heads;
int sectors;
int cylinders;
- int raid_level;
+ int raid_level; /* set to -1 to indicate that
+ * the drive is not in use/configured
+ */
+ int busy_configuring; /*This is set when the drive is being removed
+ *to prevent it from being opened or it's queue
+ *from being started.
+ */
} drive_info_struct;
} drive_info_struct;
+#ifdef CONFIG_CISS_SCSI_TAPE
+
+struct sendcmd_reject_list {
+ int ncompletions;
+ unsigned long *complete; /* array of NR_CMDS tags */
+};
+
+#endif
struct ctlr_info
{
int ctlr;
struct ctlr_info
{
int ctlr;
@@
-48,14
+63,21
@@
struct ctlr_info
unsigned long io_mem_addr;
unsigned long io_mem_length;
CfgTable_struct __iomem *cfgtable;
unsigned long io_mem_addr;
unsigned long io_mem_length;
CfgTable_struct __iomem *cfgtable;
- unsigned int intr;
int interrupts_enabled;
int interrupts_enabled;
+ int major;
int max_commands;
int commands_outstanding;
int max_outstanding; /* Debug */
int num_luns;
int highest_lun;
int usage_count; /* number of opens all all minor devices */
int max_commands;
int commands_outstanding;
int max_outstanding; /* Debug */
int num_luns;
int highest_lun;
int usage_count; /* number of opens all all minor devices */
+# define DOORBELL_INT 0
+# define PERF_MODE_INT 1
+# define SIMPLE_MODE_INT 2
+# define MEMQ_MODE_INT 3
+ unsigned int intr[4];
+ unsigned int msix_vector;
+ unsigned int msi_vector;
// information about each logical volume
drive_info_struct drv[CISS_MAX_LUN];
// information about each logical volume
drive_info_struct drv[CISS_MAX_LUN];
@@
-69,7
+91,6
@@
struct ctlr_info
unsigned int maxQsinceinit;
unsigned int maxSG;
spinlock_t lock;
unsigned int maxQsinceinit;
unsigned int maxSG;
spinlock_t lock;
- struct request_queue *queue;
//* pointers to command and error info pool */
CommandList_struct *cmd_pool;
//* pointers to command and error info pool */
CommandList_struct *cmd_pool;
@@
-80,12
+101,22
@@
struct ctlr_info
int nr_allocs;
int nr_frees;
int busy_configuring;
int nr_allocs;
int nr_frees;
int busy_configuring;
+ int busy_initializing;
+
+ /* This element holds the zero based queue number of the last
+ * queue to be started. It is used for fairness.
+ */
+ int next_to_run;
// Disk structures we need to pass back
struct gendisk *gendisk[NWD];
#ifdef CONFIG_CISS_SCSI_TAPE
void *scsi_ctlr; /* ptr to structure containing scsi related stuff */
// Disk structures we need to pass back
struct gendisk *gendisk[NWD];
#ifdef CONFIG_CISS_SCSI_TAPE
void *scsi_ctlr; /* ptr to structure containing scsi related stuff */
+ /* list of block side commands the scsi error handling sucked up */
+ /* and saved for later processing */
+ struct sendcmd_reject_list scsi_rejects;
#endif
#endif
+ unsigned char alive;
};
/* Defining the diffent access_menthods */
};
/* Defining the diffent access_menthods */
@@
-252,7
+283,7
@@
struct board_type {
struct access_method *access;
};
struct access_method *access;
};
-#define CCISS_LOCK(i) (
hba[i]->queue->queue_
lock)
+#define CCISS_LOCK(i) (
&hba[i]->
lock)
#endif /* CCISS_H */
#endif /* CCISS_H */