* [ANNOUNCE] Adaptec SAS/SATA device driver [23/27]
@ 2005-02-17 17:37 Luben Tuikov
0 siblings, 0 replies; only message in thread
From: Luben Tuikov @ 2005-02-17 17:37 UTC (permalink / raw)
To: SCSI Mailing List
Anything SATA related header file.
diff -Nru a/drivers/scsi/adp94xx/adp94xx_sata.h b/drivers/scsi/adp94xx/adp94xx_sata.h
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/drivers/scsi/adp94xx/adp94xx_sata.h 2005-02-16 16:08:12 -05:00
@@ -0,0 +1,756 @@
+/*
+ * Adaptec ADP94xx SAS HBA device driver for Linux.
+ *
+ * Copyright (c) 2004 Adaptec Inc.
+ * All rights reserved.
+ *
+ * Written by : Robert Tarte <robt@PacificCodeWorks.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ *
+ * $Id: //depot/razor/linux/src/adp94xx_sata.h#13 $
+ *
+ */
+
+#ifdef ASD_DEBUG
+#define INLINE
+#else
+#define INLINE inline
+#endif
+
+#ifndef ADP94XX_SATA_H
+#define ADP94XX_SATA_H
+#define FIS_HOST_TO_DEVICE 0x27
+#define FIS_DEVICE_TO_HOST 0x34
+#define FIS_COMMAND 0x80
+
+#define ASD_H2D_FIS(ata_hscb) \
+ ((struct adp_host_to_dev_fis *)&ata_hscb->host_to_dev_reg_fis[0])
+
+#define ASD_D2H_FIS(ata_resp_edb) \
+ ((struct adp_dev_to_host_fis *)&ata_resp_edb->ending_fis[0])
+
+#define FIS_OFFSET(x) ((unsigned)(&((struct adp_host_to_dev_fis *)0)->x))
+
+#define ATA2SCSI_2(x) ((((x) & 0x00ff) << 8) | (((x) & 0xff00) >> 8))
+#define ATA2SCSI_4(x) ((((x) & 0x000000ff) << 24) | \
+ (((x) & 0x0000ff00) << 8) | \
+ (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0xff000000) >> 24))
+#define ATA2SCSI_8(x) ((((x) & 0x00000000000000ffLL) << 56) | \
+ (((x) & 0x000000000000ff00LL) << 40) | \
+ (((x) & 0x0000000000ff0000LL) << 24) | \
+ (((x) & 0x00000000ff000000LL) << 8) | \
+ (((x) & 0x000000ff00000000LL) >> 8) | \
+ (((x) & 0x0000ff0000000000LL) >> 24) | \
+ (((x) & 0x00ff000000000000LL) >> 40) | \
+ (((x) & 0xff00000000000000LL) >> 56))
+
+// for the SStatus register
+#define SSTATUS_IPM_DET_MASK 0x00000f0f
+#define SSTATUS_SPD_MASK 0x000000f0
+
+#define SSTATUS_DET_COM_ESTABLISHED 0x00000003
+#define SSTATUS_SPD_NOT_ESTABLISHED 0x00000000
+#define SSTATUS_IPM_ACTIVE 0x00000100
+
+// for the ATA Identify command
+#define IDENT_48BIT_SUPPORT 0x0400
+#define IDENT_QUEUED_SUPPORT 0x0002
+#define IDENT_DMA_SUPPORT 0x01
+#define POWER_MANAGEMENT_SUPPORTED 0x0008
+#define IDENT_WRITE_FUA_SUPPORT 0x0080
+
+#define ATA_READ_BUFFER_CAPABLE 0x2000
+#define ATA_WRITE_BUFFER_CAPABLE 0x1000
+#define ATA_LOOK_AHEAD_CAPABLE 0x0040
+#define ATA_WRITE_CACHE_CAPABLE 0x0020
+#define ATA_SMART_CAPABLE 0x0001
+
+#define ATA_READ_BUFFER_ENABLED 0x2000
+#define ATA_WRITE_BUFFER_ENABLED 0x1000
+#define ATA_LOOK_AHEAD_ENABLED 0x0040
+#define ATA_WRITE_CACHE_ENABLED 0x0020
+#define ATA_SMART_ENABLED 0x0001
+
+
+#define ATA_SMART_ENABLED 0x0001
+
+#define RW_DMA_LBA_SIZE (1 << 28)
+#define RW_DMA_MAX_SECTORS (1 << 8)
+
+#define ATA_DMA_ULTRA_VALID 0x0004
+#define ATA_PIO_MODES_VALID 0x0002
+#define DMA_ULTRA_MODE_MASK 0x007f
+
+#define UDMA_XFER_MODE 0x40
+
+
+// for the ATA Check Power Mode command
+#define ATA_STANDBY_MODE 0x00
+#define ATA_IDLE_MODE 0x80
+#define ATA_ACTIVE 0xff
+
+// for the INQUIRY command
+#define ATA_REMOVABLE 0x0080
+#define SCSI_REMOVABLE 0x0008
+#define SCSI_3_RESPONSE_DATA_FORMAT 0x02
+#define CMD_QUEUE_BIT 0x02
+#define CMD_DT 0x02
+#define LUN_FIELD 0xE0
+#define EVPD 0x01
+#define SUPPORTED_VPD 0x00
+#define UNIT_SERIAL_VPD 0x80
+#define ATA_PRODUCT_SERIAL_LENGTH 20
+#define INQUIRY_RESPONSE_SIZE 58
+
+// for the READ_CAPACITY command
+#define READ_CAPACITY_DATA_LEN 8
+#define ATA_BLOCK_SIZE 512
+
+// for the REQUEST_SENSE command
+#define SENSE_DATA_SIZE 18
+#define INVALID_FIELD_IN_CDB 0x24
+#define INVALID_COMMAND_OPERATION 0x20
+#define LOGICAL_UNIT_NOT_READY 0x04
+#define INITIALIZING_COMMAND_REQUIRED 0x02
+#define NOTIFY_REQUIRED 0x11
+#define MEDIUM_NOT_PRESENT 0x3a
+#define IO_PROCESS_TERMINATED_ASC 0x00
+#define IO_PROCESS_TERMINATED_ASCQ 0x06
+#define LOGICAL_UNIT_ASC 0x08
+#define COMMUNICATION_CRC_ERROR 0x03
+#define OPERATOR_ASC 0x5a
+#define MEDIUM_REMOVAL_REQUEST 0x01
+#define MEDIUM_CHANGED 0x28
+#define LOGICAL_UNIT_FAILURE 0x3e
+#define FAILED_SELF_TEST 0x03
+#define FORMAT_FAILED 0x31
+#define FORMAT_COMMAND_FAILED 0x01
+
+#define RESOURCE_FAILURE 0x55
+#define MEMORY_OUT_OF_SPACE 0x06
+
+#define NM_ERR TRK0_ERR
+#define UNC_ERR ECC_ERR
+
+// for the START_STOP command byte 4
+#define START_STOP_LOEJ 0x02
+#define START_STOP_START 0x01
+
+// for LOG_SENSE command byte 2
+#define SMART_DATA 0x31
+#define PAGE_CODE_MASK 0x3f
+#define PAGE_CONTROL_CURRENT 0x00
+#define PAGE_CONTROL_CUMULATIVE 0x40
+#define SMART_READ_DATA 0xd0
+
+#define SET_NO_IO_MODE(ata_hscb)
+#define SET_PIO_MODE(ata_hscb)
+#define SET_DMA_MODE(ata_hscb) { (ata_hscb)->ata_flags |= DMA_XFER_MODE; }
+
+// for PACKET Command
+#define DMADIR_BIT_NEEDED 0x8000
+#define DMADIR_BIT_DEV_TO_HOST 0x4
+#define PACKET_DMA_BIT 0x1
+
+// for WRITE_BUFFER command
+#define DATA_ONLY_MODE 0x02
+#define DESCRIPTOR_MODE 0x03
+#define BUFFER_MODE_MASK 0x1f
+#define READ_BUFFER_DESCRIPTOR_LENGTH 0x04
+#define ATA_BUFFER_SIZE 512
+
+// no Linux ATA command
+#define WIN_WRITE_DMA_FUA_EXT 0x3d
+#define WIN_WRITE_DMA_QUEUED_FUA_EXT 0x3e
+#define SCSI_WRITE_FUA_BIT 0x08
+
+// for MODE_SELECT command
+#define SP_BIT 0x01
+#define PF_BIT 0x10
+
+// for MODE_SENSE command
+#define DBD_BIT 0x08
+#define PAGE_CODE_MASK 0x3f
+#define PAGE_CONTROL_MASK 0xc0
+#define LLBA_MASK 0x10
+
+// pages for MODE_SENSE & MODE_SELECT
+#define MODE_PARAMETER_HEADER_LENGTH_10 8
+#define MODE_PARAMETER_HEADER_LENGTH_6 4
+#define BLOCK_DESCRIPTOR_LENGTH_8 8
+#define BLOCK_DESCRIPTOR_LENGTH_16 16
+
+#define READ_WRITE_ERROR_RECOVERY_MODE_PAGE 0x01
+#define DISCONNECT_RECONNECT_PAGE 0x02
+#define FORMAT_DEVICE_PAGE 0x03
+#define RIGID_DISK_GEOMETRY_PAGE 0x04
+#define CACHING_MODE_PAGE 0x08
+#define CONTROL_MODE_PAGE 0x0a
+#define INFORMATIONAL_EXCEPTION_CONTROL_PAGE 0x1c
+#define RETURN_ALL_PAGES 0x3f
+
+#define READ_WRITE_ERROR_RECOVERY_MODE_PAGE_LEN 0x0c
+#define CACHING_MODE_PAGE_LEN 0x14
+#define CONTROL_MODE_PAGE_LEN 0x0c
+#define INFORMATIONAL_EXCEPTION_CONTROL_PAGE_LEN 0x0c
+
+#define SCSI_DRA 0x20
+#define SCSI_WCE 0x04
+#define SCSI_DEXCPT 0x08
+
+// for FORMAT_UNIT command
+#define FORMAT_WRITE_BUFFER_LEN 4096
+#define FORMAT_BLOCK_SIZE 512
+#define FORMAT_SECTORS \
+ (FORMAT_WRITE_BUFFER_LEN / FORMAT_BLOCK_SIZE)
+
+
+
+// for SEND_DIAGNOSTIC
+#define SELFTEST 0x04
+#define SELFTEST_CODE_MASK 0xe0
+
+#ifndef REPORT_LUNS
+#define REPORT_LUNS 0xa0
+#endif
+#define REPORT_LUNS_SIZE 16
+
+#ifndef ASSERT
+#ifdef ASD_DEBUG
+#define ASSERT(x) \
+ if (!(x)) \
+ { \
+ printk("Assertion failed: %s:%d\n", __FUNCTION__, __LINE__); \
+ }
+#else
+#define ASSERT(x)
+#endif
+#endif
+
+#ifndef WIN_READ_EXT
+#define WIN_READ_EXT 0x24 /* 48-Bit */
+#define WIN_READDMA_EXT 0x25 /* 48-Bit */
+#define WIN_READDMA_QUEUED_EXT 0x26 /* 48-Bit */
+#define WIN_FLUSH_CACHE 0xE7
+#define WIN_VERIFY_EXT 0x42 /* 48-Bit */
+#define WIN_WRITE_EXT 0x34 /* 48-Bit */
+#define WIN_WRITEDMA_EXT 0x35 /* 48-Bit */
+#define WIN_WRITEDMA_QUEUED_EXT 0x36 /* 48-Bit */
+#define lba_capacity_2 words94_125[6]
+#endif
+
+
+#define LBA_MODE 0x40
+
+struct adp_host_to_dev_fis {
+ uint8_t fis_type;
+ uint8_t cmd_devcontrol;
+ uint8_t command;
+ uint8_t features;
+
+ uint8_t sector_number;
+ uint8_t cyl_lo;
+ uint8_t cyl_hi;
+ uint8_t dev_head;
+
+ uint8_t sector_number_exp;
+ uint8_t cyl_lo_exp;
+ uint8_t cyl_hi_exp;
+ uint8_t features_exp;
+
+ uint8_t sector_count;
+ uint8_t sector_count_exp;
+ uint8_t res1;
+ uint8_t control;
+
+ uint8_t res2;
+ uint8_t res3;
+ uint8_t res4;
+ uint8_t res5;
+} __packed;
+
+
+#define lba0 sector_number
+#define lba1 cyl_lo
+#define lba2 cyl_hi
+#define lba3 sector_number_exp
+#define byte_count_lo cyl_lo
+#define byte_count_hi cyl_hi
+
+struct adp_dev_to_host_fis {
+ uint8_t fis_type;
+ uint8_t interrupt;
+ uint8_t status;
+ uint8_t error;
+
+ uint8_t sector_number;
+ uint8_t cyl_lo;
+ uint8_t cyl_hi;
+ uint8_t dev_head;
+
+ uint8_t sector_number_exp;
+ uint8_t cyl_lo_exp;
+ uint8_t cyl_hi_exp;
+ uint8_t res1;
+
+ uint8_t sector_count;
+ uint8_t sector_count_exp;
+ uint8_t res2;
+ uint8_t res3;
+
+ uint8_t res4;
+ uint8_t res5;
+ uint8_t res6;
+ uint8_t res7;
+} __packed;
+
+/* -------------------------------------------------------------------------- */
+
+ASD_COMMAND_BUILD_STATUS
+asd_build_ata_scb(
+struct asd_softc *asd,
+struct scb *scb,
+union asd_cmd *acmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_build_atapi_scb(
+struct asd_softc *asd,
+struct scb *scb,
+union asd_cmd *acmd
+);
+
+INLINE
+void
+asd_sata_setup_fis(
+struct asd_ata_task_hscb *ata_hscb,
+uint8_t command
+);
+
+void
+asd_sata_compute_support(
+struct asd_softc *asd,
+struct asd_target *target
+);
+
+INLINE
+void
+asd_sata_setup_lba_ext(
+struct asd_ata_task_hscb *ata_hscb,
+unsigned lba,
+unsigned sectors
+);
+
+INLINE
+void
+asd_sata_setup_lba(
+struct asd_ata_task_hscb *ata_hscb,
+unsigned lba,
+unsigned sectors
+);
+
+void
+asd_sata_set_check_condition(
+struct scsi_cmnd *cmd,
+unsigned sense_key,
+unsigned additional_sense,
+unsigned additional_sense_qualifier
+);
+
+void
+asd_sata_check_registers(
+struct ata_resp_edb *ata_resp_edbp,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_completion_status(
+struct scsi_cmnd *cmd,
+struct ata_resp_edb *ata_resp_edbp
+);
+
+INLINE
+struct ata_resp_edb *
+asd_sata_get_edb(
+struct asd_softc *asd,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_format_unit_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_format_unit_free_memory(
+struct asd_softc *asd,
+struct scsi_cmnd *write_cmd
+);
+
+void
+asd_sata_format_unit_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_inquiry_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_inquiry_evd_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd,
+u_char *inquiry_data
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_log_sense_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_log_sense_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_mode_select_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_mode_sense_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_read_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_read_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_write_buffer_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_write_buffer_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_read_buffer_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_read_buffer_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_read_capacity_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_report_luns_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_request_sense_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_rezero_unit_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_seek_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_send_diagnostic_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_send_diagnostic_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_start_stop_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_start_stop_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_synchronize_cache_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_synchronize_cache_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_test_unit_ready_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_test_unit_ready_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_verify_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_verify_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_write_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_write_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_write_verify_build(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+struct scsi_cmnd *cmd
+);
+
+void
+asd_sata_write_verify_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+void
+asd_sata_identify_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+void
+asd_sata_atapi_post(
+struct asd_softc *asd,
+struct scb *scb,
+struct asd_done_list *done_listp
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_read_write_error_recovery_mode_select(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+uint8_t *bufptr
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_caching_mode_select(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+uint8_t *bufptr
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_control_mode_select(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+uint8_t *bufptr
+);
+
+ASD_COMMAND_BUILD_STATUS
+asd_sata_informational_exception_control_select(
+struct asd_softc *asd,
+struct asd_device *dev,
+struct scb *scb,
+uint8_t *bufptr
+);
+
+int
+asd_sata_set_features_build(
+struct asd_softc *asd,
+struct asd_target *target,
+struct scb *scb,
+uint8_t feature,
+uint8_t sector_count
+);
+
+uint8_t *
+asd_sata_informational_exception_control_sense(
+struct asd_softc *asd,
+struct asd_device *dev,
+uint8_t *bufptr
+);
+
+uint8_t *
+asd_sata_control_sense(
+struct asd_softc *asd,
+struct asd_device *dev,
+uint8_t *bufptr
+);
+
+uint8_t *
+asd_sata_caching_sense(
+struct asd_softc *asd,
+struct asd_device *dev,
+uint8_t *bufptr
+);
+
+uint8_t *
+asd_sata_read_write_error_recovery_sense(
+struct asd_softc *asd,
+struct asd_device *dev,
+uint8_t *bufptr
+);
+
+COMMAND_SET_TYPE asd_sata_get_type(struct adp_dev_to_host_fis *fis);
+
+#endif /* ADP94XX_SATA_H */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-02-17 17:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-17 17:37 [ANNOUNCE] Adaptec SAS/SATA device driver [23/27] Luben Tuikov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.