summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/drivers/message/fusion/mptctl.h
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/drivers/message/fusion/mptctl.h')
-rw-r--r--ANDROID_3.4.5/drivers/message/fusion/mptctl.h467
1 files changed, 0 insertions, 467 deletions
diff --git a/ANDROID_3.4.5/drivers/message/fusion/mptctl.h b/ANDROID_3.4.5/drivers/message/fusion/mptctl.h
deleted file mode 100644
index d564cc9a..00000000
--- a/ANDROID_3.4.5/drivers/message/fusion/mptctl.h
+++ /dev/null
@@ -1,467 +0,0 @@
-/*
- * linux/drivers/message/fusion/mptioctl.h
- * Fusion MPT misc device (ioctl) driver.
- * For use with PCI chip/adapter(s):
- * LSIFC9xx/LSI409xx Fibre Channel
- * running LSI Fusion MPT (Message Passing Technology) firmware.
- *
- * Copyright (c) 1999-2008 LSI Corporation
- * (mailto:DL-MPTFusionLinux@lsi.com)
- *
- */
-/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-/*
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- NO WARRANTY
- THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
- CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
- LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
- solely responsible for determining the appropriateness of using and
- distributing the Program and assumes all risks associated with its
- exercise of rights under this Agreement, including but not limited to
- the risks and costs of program errors, damage to or loss of data,
- programs or equipment, and unavailability or interruption of operations.
-
- DISCLAIMER OF LIABILITY
- NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), 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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
- HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifndef MPTCTL_H_INCLUDED
-#define MPTCTL_H_INCLUDED
-/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-
-
-
-/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-/*
- *
- */
-#define MPT_MISCDEV_BASENAME "mptctl"
-#define MPT_MISCDEV_PATHNAME "/dev/" MPT_MISCDEV_BASENAME
-
-#define MPT_PRODUCT_LENGTH 12
-
-/*
- * Generic MPT Control IOCTLs and structures
- */
-#define MPT_MAGIC_NUMBER 'm'
-
-#define MPTRWPERF _IOWR(MPT_MAGIC_NUMBER,0,struct mpt_raw_r_w)
-
-#define MPTFWDOWNLOAD _IOWR(MPT_MAGIC_NUMBER,15,struct mpt_fw_xfer)
-#define MPTCOMMAND _IOWR(MPT_MAGIC_NUMBER,20,struct mpt_ioctl_command)
-
-#if defined(__KERNEL__) && defined(CONFIG_COMPAT)
-#define MPTFWDOWNLOAD32 _IOWR(MPT_MAGIC_NUMBER,15,struct mpt_fw_xfer32)
-#define MPTCOMMAND32 _IOWR(MPT_MAGIC_NUMBER,20,struct mpt_ioctl_command32)
-#endif
-
-#define MPTIOCINFO _IOWR(MPT_MAGIC_NUMBER,17,struct mpt_ioctl_iocinfo)
-#define MPTIOCINFO1 _IOWR(MPT_MAGIC_NUMBER,17,struct mpt_ioctl_iocinfo_rev0)
-#define MPTIOCINFO2 _IOWR(MPT_MAGIC_NUMBER,17,struct mpt_ioctl_iocinfo_rev1)
-#define MPTTARGETINFO _IOWR(MPT_MAGIC_NUMBER,18,struct mpt_ioctl_targetinfo)
-#define MPTTEST _IOWR(MPT_MAGIC_NUMBER,19,struct mpt_ioctl_test)
-#define MPTEVENTQUERY _IOWR(MPT_MAGIC_NUMBER,21,struct mpt_ioctl_eventquery)
-#define MPTEVENTENABLE _IOWR(MPT_MAGIC_NUMBER,22,struct mpt_ioctl_eventenable)
-#define MPTEVENTREPORT _IOWR(MPT_MAGIC_NUMBER,23,struct mpt_ioctl_eventreport)
-#define MPTHARDRESET _IOWR(MPT_MAGIC_NUMBER,24,struct mpt_ioctl_diag_reset)
-#define MPTFWREPLACE _IOWR(MPT_MAGIC_NUMBER,25,struct mpt_ioctl_replace_fw)
-
-/*
- * SPARC PLATFORM REMARKS:
- * IOCTL data structures that contain pointers
- * will have different sizes in the driver and applications
- * (as the app. will not use 8-byte pointers).
- * Apps should use MPTFWDOWNLOAD and MPTCOMMAND.
- * The driver will convert data from
- * mpt_fw_xfer32 (mpt_ioctl_command32) to mpt_fw_xfer (mpt_ioctl_command)
- * internally.
- *
- * If data structures change size, must handle as in IOCGETINFO.
- */
-struct mpt_fw_xfer {
- unsigned int iocnum; /* IOC unit number */
- unsigned int fwlen;
- void __user *bufp; /* Pointer to firmware buffer */
-};
-
-#if defined(__KERNEL__) && defined(CONFIG_COMPAT)
-struct mpt_fw_xfer32 {
- unsigned int iocnum;
- unsigned int fwlen;
- u32 bufp;
-};
-#endif /*}*/
-
-/*
- * IOCTL header structure.
- * iocnum - must be defined.
- * port - must be defined for all IOCTL commands other than MPTIOCINFO
- * maxDataSize - ignored on MPTCOMMAND commands
- * - ignored on MPTFWREPLACE commands
- * - on query commands, reports the maximum number of bytes to be returned
- * to the host driver (count includes the header).
- * That is, set to sizeof(struct mpt_ioctl_iocinfo) for fixed sized commands.
- * Set to sizeof(struct mpt_ioctl_targetinfo) + datasize for variable
- * sized commands. (MPTTARGETINFO, MPTEVENTREPORT)
- */
-typedef struct _mpt_ioctl_header {
- unsigned int iocnum; /* IOC unit number */
- unsigned int port; /* IOC port number */
- int maxDataSize; /* Maximum Num. bytes to transfer on read */
-} mpt_ioctl_header;
-
-/*
- * Issue a diagnostic reset
- */
-struct mpt_ioctl_diag_reset {
- mpt_ioctl_header hdr;
-};
-
-
-/*
- * PCI bus/device/function information structure.
- */
-struct mpt_ioctl_pci_info {
- union {
- struct {
- unsigned int deviceNumber : 5;
- unsigned int functionNumber : 3;
- unsigned int busNumber : 24;
- } bits;
- unsigned int asUlong;
- } u;
-};
-
-struct mpt_ioctl_pci_info2 {
- union {
- struct {
- unsigned int deviceNumber : 5;
- unsigned int functionNumber : 3;
- unsigned int busNumber : 24;
- } bits;
- unsigned int asUlong;
- } u;
- int segmentID;
-};
-
-/*
- * Adapter Information Page
- * Read only.
- * Data starts at offset 0xC
- */
-#define MPT_IOCTL_INTERFACE_SCSI (0x00)
-#define MPT_IOCTL_INTERFACE_FC (0x01)
-#define MPT_IOCTL_INTERFACE_FC_IP (0x02)
-#define MPT_IOCTL_INTERFACE_SAS (0x03)
-#define MPT_IOCTL_VERSION_LENGTH (32)
-
-struct mpt_ioctl_iocinfo {
- mpt_ioctl_header hdr;
- int adapterType; /* SCSI or FCP */
- int port; /* port number */
- int pciId; /* PCI Id. */
- int hwRev; /* hardware revision */
- int subSystemDevice; /* PCI subsystem Device ID */
- int subSystemVendor; /* PCI subsystem Vendor ID */
- int numDevices; /* number of devices */
- int FWVersion; /* FW Version (integer) */
- int BIOSVersion; /* BIOS Version (integer) */
- char driverVersion[MPT_IOCTL_VERSION_LENGTH]; /* Driver Version (string) */
- char busChangeEvent;
- char hostId;
- char rsvd[2];
- struct mpt_ioctl_pci_info2 pciInfo; /* Added Rev 2 */
-};
-
-struct mpt_ioctl_iocinfo_rev1 {
- mpt_ioctl_header hdr;
- int adapterType; /* SCSI or FCP */
- int port; /* port number */
- int pciId; /* PCI Id. */
- int hwRev; /* hardware revision */
- int subSystemDevice; /* PCI subsystem Device ID */
- int subSystemVendor; /* PCI subsystem Vendor ID */
- int numDevices; /* number of devices */
- int FWVersion; /* FW Version (integer) */
- int BIOSVersion; /* BIOS Version (integer) */
- char driverVersion[MPT_IOCTL_VERSION_LENGTH]; /* Driver Version (string) */
- char busChangeEvent;
- char hostId;
- char rsvd[2];
- struct mpt_ioctl_pci_info pciInfo; /* Added Rev 1 */
-};
-
-/* Original structure, must always accept these
- * IOCTLs. 4 byte pads can occur based on arch with
- * above structure. Wish to re-align, but cannot.
- */
-struct mpt_ioctl_iocinfo_rev0 {
- mpt_ioctl_header hdr;
- int adapterType; /* SCSI or FCP */
- int port; /* port number */
- int pciId; /* PCI Id. */
- int hwRev; /* hardware revision */
- int subSystemDevice; /* PCI subsystem Device ID */
- int subSystemVendor; /* PCI subsystem Vendor ID */
- int numDevices; /* number of devices */
- int FWVersion; /* FW Version (integer) */
- int BIOSVersion; /* BIOS Version (integer) */
- char driverVersion[MPT_IOCTL_VERSION_LENGTH]; /* Driver Version (string) */
- char busChangeEvent;
- char hostId;
- char rsvd[2];
-};
-
-/*
- * Device Information Page
- * Report the number of, and ids of, all targets
- * on this IOC. The ids array is a packed structure
- * of the known targetInfo.
- * bits 31-24: reserved
- * 23-16: LUN
- * 15- 8: Bus Number
- * 7- 0: Target ID
- */
-struct mpt_ioctl_targetinfo {
- mpt_ioctl_header hdr;
- int numDevices; /* Num targets on this ioc */
- int targetInfo[1];
-};
-
-
-/*
- * Event reporting IOCTL's. These IOCTL's will
- * use the following defines:
- */
-struct mpt_ioctl_eventquery {
- mpt_ioctl_header hdr;
- unsigned short eventEntries;
- unsigned short reserved;
- unsigned int eventTypes;
-};
-
-struct mpt_ioctl_eventenable {
- mpt_ioctl_header hdr;
- unsigned int eventTypes;
-};
-
-#ifndef __KERNEL__
-typedef struct {
- uint event;
- uint eventContext;
- uint data[2];
-} MPT_IOCTL_EVENTS;
-#endif
-
-struct mpt_ioctl_eventreport {
- mpt_ioctl_header hdr;
- MPT_IOCTL_EVENTS eventData[1];
-};
-
-#define MPT_MAX_NAME 32
-struct mpt_ioctl_test {
- mpt_ioctl_header hdr;
- u8 name[MPT_MAX_NAME];
- int chip_type;
- u8 product [MPT_PRODUCT_LENGTH];
-};
-
-/* Replace the FW image cached in host driver memory
- * newImageSize - image size in bytes
- * newImage - first byte of the new image
- */
-typedef struct mpt_ioctl_replace_fw {
- mpt_ioctl_header hdr;
- int newImageSize;
- u8 newImage[1];
-} mpt_ioctl_replace_fw_t;
-
-/* General MPT Pass through data strucutre
- *
- * iocnum
- * timeout - in seconds, command timeout. If 0, set by driver to
- * default value.
- * replyFrameBufPtr - reply location
- * dataInBufPtr - destination for read
- * dataOutBufPtr - data source for write
- * senseDataPtr - sense data location
- * maxReplyBytes - maximum number of reply bytes to be sent to app.
- * dataInSize - num bytes for data transfer in (read)
- * dataOutSize - num bytes for data transfer out (write)
- * dataSgeOffset - offset in words from the start of the request message
- * to the first SGL
- * MF[1];
- *
- * Remark: Some config pages have bi-directional transfer,
- * both a read and a write. The basic structure allows for
- * a bidirectional set up. Normal messages will have one or
- * both of these buffers NULL.
- */
-struct mpt_ioctl_command {
- mpt_ioctl_header hdr;
- int timeout; /* optional (seconds) */
- char __user *replyFrameBufPtr;
- char __user *dataInBufPtr;
- char __user *dataOutBufPtr;
- char __user *senseDataPtr;
- int maxReplyBytes;
- int dataInSize;
- int dataOutSize;
- int maxSenseBytes;
- int dataSgeOffset;
- char MF[1];
-};
-
-/*
- * SPARC PLATFORM: See earlier remark.
- */
-#if defined(__KERNEL__) && defined(CONFIG_COMPAT)
-struct mpt_ioctl_command32 {
- mpt_ioctl_header hdr;
- int timeout;
- u32 replyFrameBufPtr;
- u32 dataInBufPtr;
- u32 dataOutBufPtr;
- u32 senseDataPtr;
- int maxReplyBytes;
- int dataInSize;
- int dataOutSize;
- int maxSenseBytes;
- int dataSgeOffset;
- char MF[1];
-};
-#endif /*}*/
-
-
-/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-
-#define CPQFCTS_IOC_MAGIC 'Z'
-#define HP_IOC_MAGIC 'Z'
-#define HP_GETHOSTINFO _IOR(HP_IOC_MAGIC, 20, hp_host_info_t)
-#define HP_GETHOSTINFO1 _IOR(HP_IOC_MAGIC, 20, hp_host_info_rev0_t)
-#define HP_GETTARGETINFO _IOR(HP_IOC_MAGIC, 21, hp_target_info_t)
-
-typedef struct _hp_header {
- unsigned int iocnum;
- unsigned int host;
- unsigned int channel;
- unsigned int id;
- unsigned int lun;
-} hp_header_t;
-
-/*
- * Header:
- * iocnum required (input)
- * host ignored
- * channe ignored
- * id ignored
- * lun ignored
- */
-typedef struct _hp_host_info {
- hp_header_t hdr;
- u16 vendor;
- u16 device;
- u16 subsystem_vendor;
- u16 subsystem_id;
- u8 devfn;
- u8 bus;
- ushort host_no; /* SCSI Host number, if scsi driver not loaded*/
- u8 fw_version[16]; /* string */
- u8 serial_number[24]; /* string */
- u32 ioc_status;
- u32 bus_phys_width;
- u32 base_io_addr;
- u32 rsvd;
- unsigned int hard_resets; /* driver initiated resets */
- unsigned int soft_resets; /* ioc, external resets */
- unsigned int timeouts; /* num timeouts */
-} hp_host_info_t;
-
-/* replace ulongs with uints, need to preserve backwards
- * compatibility.
- */
-typedef struct _hp_host_info_rev0 {
- hp_header_t hdr;
- u16 vendor;
- u16 device;
- u16 subsystem_vendor;
- u16 subsystem_id;
- u8 devfn;
- u8 bus;
- ushort host_no; /* SCSI Host number, if scsi driver not loaded*/
- u8 fw_version[16]; /* string */
- u8 serial_number[24]; /* string */
- u32 ioc_status;
- u32 bus_phys_width;
- u32 base_io_addr;
- u32 rsvd;
- unsigned long hard_resets; /* driver initiated resets */
- unsigned long soft_resets; /* ioc, external resets */
- unsigned long timeouts; /* num timeouts */
-} hp_host_info_rev0_t;
-
-/*
- * Header:
- * iocnum required (input)
- * host required
- * channel required (bus number)
- * id required
- * lun ignored
- *
- * All error values between 0 and 0xFFFF in size.
- */
-typedef struct _hp_target_info {
- hp_header_t hdr;
- u32 parity_errors;
- u32 phase_errors;
- u32 select_timeouts;
- u32 message_rejects;
- u32 negotiated_speed;
- u8 negotiated_width;
- u8 rsvd[7]; /* 8 byte alignment */
-} hp_target_info_t;
-
-#define HP_STATUS_OTHER 1
-#define HP_STATUS_OK 2
-#define HP_STATUS_FAILED 3
-
-#define HP_BUS_WIDTH_UNK 1
-#define HP_BUS_WIDTH_8 2
-#define HP_BUS_WIDTH_16 3
-#define HP_BUS_WIDTH_32 4
-
-#define HP_DEV_SPEED_ASYNC 2
-#define HP_DEV_SPEED_FAST 3
-#define HP_DEV_SPEED_ULTRA 4
-#define HP_DEV_SPEED_ULTRA2 5
-#define HP_DEV_SPEED_ULTRA160 6
-#define HP_DEV_SPEED_SCSI1 7
-#define HP_DEV_SPEED_ULTRA320 8
-
-/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-
-
-/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
-
-#endif
-