summaryrefslogtreecommitdiff
path: root/include/linux/libata.h
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2004-07-10 04:47:34 -0400
committerJeff Garzik <jgarzik@pobox.com>2004-07-10 04:47:34 -0400
commit04272d0f35b2e25f5ae1a23432260f771e652554 (patch)
treec738516659dfab5ea7b7b3f2fbddb1d6dc617a07 /include/linux/libata.h
parent3fcfe3871c0dc3901f740afe7331ba6e67679493 (diff)
[libata] ATAPI work - cdb len, new taskfile protocol, cleanups
* new helper atapi_cdb_len() in linux/ata.h, use it after IDENTIFY PACKET DEVICE command completes * add new taskfile protocol ATA_PROT_ATAPI_NODATA * store scsi cdb in ata_queued_cmd. This removes another dependence on the scsi layer, and enables us to issue an internal REQUEST SENSE. * store cdb len in ata_port * new constant ATAPI_CDB_LEN for max cdb length * move ATA taskfile and SCSI cdb near the top of ata_queued_cmd, for better cacheline friendliness.
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r--include/linux/libata.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 42a9bde8e42d..8443cce6971f 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -218,6 +218,9 @@ struct ata_queued_cmd {
struct scsi_cmnd *scsicmd;
void (*scsidone)(struct scsi_cmnd *);
+ struct ata_taskfile tf;
+ u8 cdb[ATAPI_CDB_LEN];
+
unsigned long flags; /* ATA_QCFLAG_xxx */
unsigned int tag;
unsigned int n_elem;
@@ -229,7 +232,6 @@ struct ata_queued_cmd {
unsigned int cursg;
unsigned int cursg_ofs;
- struct ata_taskfile tf;
struct scatterlist sgent;
void *buf_virt;
@@ -285,6 +287,7 @@ struct ata_port {
unsigned int mwdma_mask;
unsigned int udma_mask;
unsigned int cbl; /* cable type; ATA_CBL_xxx */
+ unsigned int cdb_len;
struct ata_device device[ATA_MAX_DEVICES];