All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luben Tuikov <luben_tuikov@adaptec.com>
To: SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: [ANNOUNCE] Adaptec SAS/SATA device driver [23/27]
Date: Thu, 17 Feb 2005 12:37:35 -0500	[thread overview]
Message-ID: <4214D65F.80601@adaptec.com> (raw)

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 */ 


                 reply	other threads:[~2005-02-17 17:37 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4214D65F.80601@adaptec.com \
    --to=luben_tuikov@adaptec.com \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.