diff options
Diffstat (limited to 'ANDROID_3.4.5/drivers/message/fusion/mptctl.h')
-rw-r--r-- | ANDROID_3.4.5/drivers/message/fusion/mptctl.h | 467 |
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 - |