* [ANNOUNCE] Adaptec SAS/SATA device driver [13/27]
@ 2005-02-17 17:36 Luben Tuikov
0 siblings, 0 replies; only message in thread
From: Luben Tuikov @ 2005-02-17 17:36 UTC (permalink / raw)
To: SCSI Mailing List
IOCTL header file.
diff -Nru a/drivers/scsi/adp94xx/adp94xx_ioctl.h b/drivers/scsi/adp94xx/adp94xx_ioctl.h
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/drivers/scsi/adp94xx/adp94xx_ioctl.h 2005-02-16 16:08:12 -05:00
@@ -0,0 +1,277 @@
+/*
+ * Adaptec ADP94xx SAS HBA driver for Linux - IOCTL data structures
+ *
+ * Written by : Naveen Chandrasekaran <naveen_chandrasekaran@adaptec.com>
+ *
+ * Copyright (c) 2004 Adaptec Inc.
+ * All rights reserved.
+ *
+ * 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_ioctl.h#6 $
+ *
+ */
+
+#ifndef _ASD_IOCTL_H_
+#define _ASD_IOCTL_H_
+
+#include <linux/ioctl.h>
+#include <linux/types.h>
+
+/* Data Direction */
+#define ASD_SAS_DATA_READ 0
+#define ASD_SAS_DATA_WRITE 1
+
+/* Status Codes */
+#define ASD_SAS_STATUS_SUCCESS 0
+#define ASD_SAS_STATUS_FAILED 1
+#define ASD_SAS_STATUS_BAD_CNTL_CODE 2
+#define ASD_SAS_STATUS_INVALID_PARAMETER 3
+
+/* I/O Bus Types
+ * ISA and EISA bus types are not supported: (bIoBusType)
+ */
+#define ASD_SAS_BUS_TYPE_PCI 3
+#define ASD_SAS_BUS_TYPE_PCMCIA 4
+
+/* Controller Class: (bControllerClass) */
+#define ASD_SAS_CNTLR_CLASS_HBA 5
+
+/* Controller Flag bits: (uControllerFlags) */
+#define ASD_SAS_CNTLR_SAS_HBA 0x00000001
+#define ASD_SAS_CNTLR_SAS_RAID 0x00000002
+#define ASD_SAS_CNTLR_SATA_HBA 0x00000004
+#define ASD_SAS_CNTLR_SATA_RAID 0x00000008
+
+/* for firmware download */
+#define ASD_SAS_CNTLR_FWD_SUPPORT 0x00010000
+#define ASD_SAS_CNTLR_FWD_ONLINE 0x00020000
+#define ASD_SAS_CNTLR_FWD_SRESET 0x00040000
+#define ASD_SAS_CNTLR_FWD_HRESET 0x00080000
+#define ASD_SAS_CNTLR_FWD_RROM 0x00100000
+
+/* IOCTL Header */
+struct IOCTL_HEADER {
+ __u32 IOControllerNumber;
+ __u32 Length;
+ __u32 ReturnCode;
+ __u32 Timeout;
+ __u16 Direction;
+}__attribute__ ((packed));
+
+/*************************************************************************/
+/* OS INDEPENDENT CODE */
+/*************************************************************************/
+
+/* * * * * * * * * Adaptec Vendor Unique Class IOCTL Constants * * * * * * * */
+
+/* Timeout value default of 60 seconds: IoctlHeader.Timeout */
+#define ASD_ADAPTEC_TIMEOUT 60
+
+/* Controller flags: uControllerFlags */
+#define ASD_ADPT_CNTLR_FLASH_NOT_PRESENT 0x00000001
+#define ASD_ADPT_CNTLR_FLASH_READONLY 0x00000002
+
+/* Invalid value for usFlashManufacturerID */
+#define ASD_SAS_APDT_INVALID_FLASH_MANUFACTURER_ID 0xFFFF
+
+/* Invalid value for usFlashDeviceID */
+#define ASD_SAS_ADPT_INVALID_FLASH_DEVICE_ID 0xFFFF
+
+/* Segment identifiers: uSegmentID */
+#define ASD_SAS_SEGMENT_ID_FLASH_DIRECTORY0 0x80000000
+#define ASD_SAS_SEGMENT_ID_CTRL_A_USER_SETTINGS0 0x800000E0
+#define ASD_SAS_SEGMENT_ID_MANUFACTURING_SECTOR0 0x80000120
+#define ASD_SAS_SEGMENT_ID_COMPATIBILITY_SECTOR0 0x80000140
+
+#define ASD_SAS_SEGMENT_ID_FLASH0 0x90000000
+#define ASD_SAS_SEGMENT_ID_SEEPROM0 0xA0000000
+
+/* NVRAM status: (uStatus) */
+#define ASD_SAS_NV_SUCCESS 0
+#define ASD_SAS_NV_FAILURE 1
+#define ASD_SAS_NV_INVALID_SEGMENT_ID 3
+#define ASD_SAS_NV_INVALID_REQUEST 4
+#define ASD_SAS_NV_WRITE_NOT_SUPPORTED 5
+#define ASD_SAS_NV_NO_NVRAM 6
+
+/* NVRAM segment attributes: (usSegmentAttributes) */
+#define ASD_SAS_SEGMENT_ATTRIBUTE_ERASEWRITE 0x0001
+#define ASD_SAS_SEGMENT_ATTRIBUTE_READONLY 0x0002
+
+/* Invalid value for uSegmentSize */
+#define ASD_SAS_SEGMENT_SIZE_INVALID 0xFFFFFFFF
+
+/* Invalid value for uSegmentImageSize */
+#define ASD_SAS_SEGMENT_IMAGE_SIZE_INVALID 0xFFFFFFFF
+
+#define SLOT_NUMBER_UNKNOWN 0xFFFF
+/*************************************************************************/
+/* DATA STRUCTURES */
+/*************************************************************************/
+
+/* * * * * * * * * * Adaptec Vendor Unique Class Structures * * * * * * * * * */
+
+/* ASD_CC_SAS_CNTLR_CONFIGURATION */
+struct ASD_SAS_PCI_BUS_ADDRESS {
+ __u8 bBusNumber;
+ __u8 bDeviceNumber;
+ __u8 bFunctionNumber;
+ __u8 bReserved;
+}__attribute__ ((packed));
+
+union ASD_SAS_IO_BUS_ADDRESS {
+ struct ASD_SAS_PCI_BUS_ADDRESS PciAddress;
+ __u8 bReserved[32];
+}__attribute__ ((packed));
+
+struct ASD_SAS_CNTLR_CONFIG {
+ __u32 uBaseIoAddress;
+ struct {
+ __u32 uLowPart;
+ __u32 uHighPart;
+ } BaseMemoryAddress;
+ __u32 uBoardID;
+ __u16 usSlotNumber;
+ __u8 bControllerClass;
+ __u8 bIoBusType;
+ union ASD_SAS_IO_BUS_ADDRESS BusAddress;
+ __u8 szSerialNumber[81];
+ __u16 usMajorRevision;
+ __u16 usMinorRevision;
+ __u16 usBuildRevision;
+ __u16 usReleaseRevision;
+ __u16 usBIOSMajorRevision;
+ __u16 usBIOSMinorRevision;
+ __u16 usBIOSBuildRevision;
+ __u16 usBIOSReleaseRevision;
+ __u32 uControllerFlags;
+ __u16 usRromMajorRevision;
+ __u16 usRromMinorRevision;
+ __u16 usRromBuildRevision;
+ __u16 usRromReleaseRevision;
+ __u16 usRromBIOSMajorRevision;
+ __u16 usRromBIOSMinorRevision;
+ __u16 usRromBIOSBuildRevision;
+ __u16 usRromBIOSReleaseRevision;
+ __u8 bReserved[7];
+}__attribute__ ((packed));
+
+struct ASD_SAS_CNTLR_CONFIG_BUFFER {
+ struct IOCTL_HEADER IoctlHeader;
+ struct ASD_SAS_CNTLR_CONFIG Configuration;
+}__attribute__ ((packed));
+
+/* ASD_CC_SAS_GET_ADPT_CNTLR_CONFIG */
+struct ASD_SAS_GET_ADPT_CNTLR_CONFIG {
+ __u16 usPCIVendorID;
+ __u16 usPCIDeviceID;
+ __u16 usPCISubsystemVendorID;
+ __u16 usPCISubsystemID;
+ __u32 uControllerFlags;
+ __u16 usFlashManufacturerID;
+ __u16 usFlashDeviceID;
+}__attribute__ ((packed));
+
+struct ASD_SAS_GET_ADPT_CNTLR_CONFIG_BUFFER {
+ struct IOCTL_HEADER IoctlHeader;
+ struct ASD_SAS_GET_ADPT_CNTLR_CONFIG Configuration;
+}__attribute__ ((packed));
+
+/* ASD_CC_SAS_GET_NV_SEGMENT_PROPERTIES */
+struct ASD_SAS_NV_SEGMENT_PROPERTIES {
+ __u32 uStatus;
+ __u32 uSegmentID;
+ __u16 usSegmentAttributes;
+ __u32 uSegmentSize;
+ __u32 uSegmentImageSize;
+}__attribute__ ((packed));
+
+struct ASD_SAS_NV_SEGMENT_PROPERTIES_BUFFER {
+ struct IOCTL_HEADER IoctlHeader;
+ struct ASD_SAS_NV_SEGMENT_PROPERTIES Information;
+}__attribute__ ((packed));
+
+/* ASD_CC_SAS_WRITE_NV_SEGMENT */
+struct ASD_SAS_WRITE_NV_SEGMENT {
+ __u32 uStatus;
+ __u32 uSegmentID;
+ __u32 uDestinationOffset;
+ __u32 uBufferLength;
+}__attribute__ ((packed));
+
+struct ASD_SAS_WRITE_NV_SEGMENT_BUFFER {
+ struct IOCTL_HEADER IoctlHeader;
+ struct ASD_SAS_WRITE_NV_SEGMENT Information;
+ __u8 bSourceBuffer[1];
+}__attribute__ ((packed));
+
+/* ASD_CC_SAS_READ_NV_SEGMENT */
+struct ASD_SAS_READ_NV_SEGMENT {
+ __u32 uStatus;
+ __u32 uSegmentID;
+ __u32 uSourceOffset;
+ __u32 uBytesToRead;
+ __u32 uBytesRead;
+}__attribute__ ((packed));
+
+struct ASD_SAS_READ_NV_SEGMENT_BUFFER {
+ struct IOCTL_HEADER IoctlHeader;
+ struct ASD_SAS_READ_NV_SEGMENT Information;
+ __u8 bDestinationBuffer[1];
+}__attribute__ ((packed));
+
+#define ASD_ADAPTEC_MAGIC 'E'
+
+/* Control Codes */
+#define ASD_CC_SAS_GET_CNTLR_CONFIG \
+ _IOWR(ASD_ADAPTEC_MAGIC, 0x10, \
+ struct ASD_SAS_CNTLR_CONFIG_BUFFER)
+
+#define ASD_CC_SAS_GET_ADPT_CNTLR_CONFIG \
+ _IOWR(ASD_ADAPTEC_MAGIC, 0x11, \
+ struct ASD_SAS_GET_ADPT_CNTLR_CONFIG_BUFFER)
+
+#define ASD_CC_SAS_GET_NV_SEGMENT_PROPERTIES \
+ _IOWR(ASD_ADAPTEC_MAGIC, 0x12, \
+ struct ASD_SAS_NV_SEGMENT_PROPERTIES_BUFFER)
+
+#define ASD_CC_SAS_WRITE_NV_SEGMENT \
+ _IOWR(ASD_ADAPTEC_MAGIC, 0x13, \
+ struct ASD_SAS_WRITE_NV_SEGMENT_BUFFER)
+
+#define ASD_CC_SAS_READ_NV_SEGMENT \
+ _IOWR(ASD_ADAPTEC_MAGIC, 0x14, \
+ struct ASD_SAS_READ_NV_SEGMENT_BUFFER)
+
+#endif /* _ASD_IOCTL_H_ */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-02-17 17:36 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:36 [ANNOUNCE] Adaptec SAS/SATA device driver [13/27] Luben Tuikov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).