diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2004-07-10 04:47:34 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2004-07-10 04:47:34 -0400 |
| commit | 04272d0f35b2e25f5ae1a23432260f771e652554 (patch) | |
| tree | c738516659dfab5ea7b7b3f2fbddb1d6dc617a07 /include/linux/libata.h | |
| parent | 3fcfe3871c0dc3901f740afe7331ba6e67679493 (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.h | 5 |
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]; |
