⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csmisas.h

📁 6440linuxDriver的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/**************************************************************************Module Name:   CSMISAS.HAbstract:   This file contains constants and data structure definitions used by drivers   that support the Common Storage Management Interface specification for   SAS or SATA in either the Windows or Linux.   This should be considered as a reference implementation only.  Changes may    be necessary to accommodate a specific build environment or target OS.Revision History:   001  SEF   8/12/03  Initial release.   002  SEF   8/20/03  Cleanup to match documentation.   003  SEF   9/12/03  Additional cleanup, created combined header   004  SEF   9/23/03  Changed base types to match linux defaults                       Added RAID signature                       Added bControllerFlags to CSMI_SAS_CNTLR_CONFIG                       Changed CSMI_SAS_BEGIN_PACK to 8 for common structures                       Fixed other typos identified in first compilation test   005  SEF  10/03/03  Additions to match first version of CSMI document   006  SEF  10/14/03  Fixed typedef struct _CSMI_SAS_SMP_PASSTHRU_BUFFER                       Added defines for bConnectionRate   007  SEF  10/15/03  Added Firmware Download Control Code and support                       Added CSMI revision support   008  SEF  10/30/03  No functional change, just updated version to track                       spec changes   009  SEF  12/09/03  No functional change, just updated version to track                       spec changes   010  SEF   3/11/04  Fixed typedef struct CSMI_SAS_RAID_DRIVES to include the                       bFirmware member that is defined in the spec, but                       was missing in this file,                       added CC_CSMI_SAS_TASK_MANAGEMENT   011  SEF   4/02/04  No functional change, added comment line before                       CC_CSMI_SAS_TASK_MANAGEMENT   012  SEF   4/16/04  Added IOControllerNumber to linux header,                       Modified linux control codes to have upper word of                       0xCC77.... to indicate CSMI version 77                       Added bSignalClass to CC_CSMI_SET_PHY_INFO                       Added CC_CSMI_SAS_PHY_CONTROL support   013  SEF   5/14/04  Added CC_CSMI_SAS_GET_CONNECTOR_INFO support   014  SEF   5/24/04  No functional change, just updated version to track spec                       changes   015  SEF   6/16/04  changed bPinout to uPinout to reflect proper size,                       changed width of bLocation defines to reflect size   016  SEF   6/17/04  changed bLengthOfControls in CSMI_SAS_PHY_CONTROL                       to be proper size   017  SEF   9/17/04  added CSMI_SAS_SATA_PORT_SELECTOR,                       CSMI_SAS_LINK_VIRTUAL, CSMI_SAS_CON_NOT_PRESENT, and                       CSMI_SAS_CON_NOT_CONNECTED   018  SEF   9/20/04  added CSMI_SAS_PHY_USER_PATTERN,                        changed definition of CSMI_SAS_PHY_FIXED_PATTERN to not                       conflict with activate definition   019  SEF  12/06/04  added CSMI_SAS_GET_LOCATION                       added bSSPStatus to CSMI_SAS_SSP_PASSTHRU_STATUS                        structure**************************************************************************/#ifndef _CSMI_SAS_H_#define _CSMI_SAS_H_// CSMI Specification Revision, the intent is that all versions of the// specification will be backward compatible after the 1.00 release.// Major revision number, corresponds to xxxx. of CSMI specification// Minor revision number, corresponds to .xxxx of CSMI specification#define CSMI_MAJOR_REVISION   0#define CSMI_MINOR_REVISION   83/*************************************************************************//* TARGET OS LINUX SPECIFIC CODE                                         *//*************************************************************************/// EDM #ifdef _linux#ifdef __KERNEL__// Linux base types#include <linux/types.h>// pack definition// EDM #define CSMI_SAS_BEGIN_PACK(x)    pack(x)// EDM #define CSMI_SAS_END_PACK         pack()// IOCTL Control Codes// (IoctlHeader.ControlCode)// Control Codes prior to 0.77// Control Codes requiring CSMI_ALL_SIGNATURE// #define CC_CSMI_SAS_GET_DRIVER_INFO    0x12345678// #define CC_CSMI_SAS_GET_CNTLR_CONFIG   0x23456781// #define CC_CSMI_SAS_GET_CNTLR_STATUS   0x34567812// #define CC_CSMI_SAS_FIRMWARE_DOWNLOAD  0x92345678// Control Codes requiring CSMI_RAID_SIGNATURE// #define CC_CSMI_SAS_GET_RAID_INFO      0x45678123// #define CC_CSMI_SAS_GET_RAID_CONFIG    0x56781234// Control Codes requiring CSMI_SAS_SIGNATURE// #define CC_CSMI_SAS_GET_PHY_INFO       0x67812345// #define CC_CSMI_SAS_SET_PHY_INFO       0x78123456// #define CC_CSMI_SAS_GET_LINK_ERRORS    0x81234567// #define CC_CSMI_SAS_SMP_PASSTHRU       0xA1234567// #define CC_CSMI_SAS_SSP_PASSTHRU       0xB1234567// #define CC_CSMI_SAS_STP_PASSTHRU       0xC1234567// #define CC_CSMI_SAS_GET_SATA_SIGNATURE 0xD1234567// #define CC_CSMI_SAS_GET_SCSI_ADDRESS   0xE1234567// #define CC_CSMI_SAS_GET_DEVICE_ADDRESS 0xF1234567// #define CC_CSMI_SAS_TASK_MANAGEMENT    0xA2345678// Control Codes for 0.77 and later// Control Codes requiring CSMI_ALL_SIGNATURE#define CC_CSMI_SAS_GET_DRIVER_INFO    0xCC770001#define CC_CSMI_SAS_GET_CNTLR_CONFIG   0xCC770002#define CC_CSMI_SAS_GET_CNTLR_STATUS   0xCC770003#define CC_CSMI_SAS_FIRMWARE_DOWNLOAD  0xCC770004// Control Codes requiring CSMI_RAID_SIGNATURE#define CC_CSMI_SAS_GET_RAID_INFO      0xCC77000A#define CC_CSMI_SAS_GET_RAID_CONFIG    0xCC77000B// Control Codes requiring CSMI_SAS_SIGNATURE#define CC_CSMI_SAS_GET_PHY_INFO       0xCC770014#define CC_CSMI_SAS_SET_PHY_INFO       0xCC770015#define CC_CSMI_SAS_GET_LINK_ERRORS    0xCC770016#define CC_CSMI_SAS_SMP_PASSTHRU       0xCC770017#define CC_CSMI_SAS_SSP_PASSTHRU       0xCC770018#define CC_CSMI_SAS_STP_PASSTHRU       0xCC770019#define CC_CSMI_SAS_GET_SATA_SIGNATURE 0xCC770020#define CC_CSMI_SAS_GET_SCSI_ADDRESS   0xCC770021#define CC_CSMI_SAS_GET_DEVICE_ADDRESS 0xCC770022#define CC_CSMI_SAS_TASK_MANAGEMENT    0xCC770023#define CC_CSMI_SAS_GET_CONNECTOR_INFO 0xCC770024#define CC_CSMI_SAS_GET_LOCATION       0xCC770025// Control Codes requiring CSMI_PHY_SIGNATURE#define CC_CSMI_SAS_PHY_CONTROL        0xCC77003C// EDM #pragma CSMI_SAS_BEGIN_PACK(8)#pragma pack(8)// IOCTL_HEADERtypedef struct _IOCTL_HEADER {	__u32 IOControllerNumber;	__u32 Length;	__u32 ReturnCode;	__u32 Timeout;	__u16 Direction;} IOCTL_HEADER, *PIOCTL_HEADER;// EDM #pragma CSMI_SAS_END_PACK#pragma pack()#endif#define __i8    char/*************************************************************************//* TARGET OS WINDOWS SPECIFIC CODE                                       *//*************************************************************************/#ifdef _WIN32// windows IOCTL definitions#ifndef _NTDDSCSIH_#include <ntddscsi.h>#endif// pack definition#if defined _MSC_VER   #define CSMI_SAS_BEGIN_PACK(x)    pack(push,x)   #define CSMI_SAS_END_PACK         pack(pop)#elif defined __BORLANDC__   #define CSMI_SAS_BEGIN_PACK(x)    option -a##x   #define CSMI_SAS_END_PACK         option -a.#else   #error "CSMISAS.H - Must externally define a pack compiler designator."#endif// base types#define __u8    unsigned char#define __u32   unsigned long#define __u16   unsigned short#define __i8    char// IOCTL Control Codes// (IoctlHeader.ControlCode)// Control Codes requiring CSMI_ALL_SIGNATURE#define CC_CSMI_SAS_GET_DRIVER_INFO    1#define CC_CSMI_SAS_GET_CNTLR_CONFIG   2#define CC_CSMI_SAS_GET_CNTLR_STATUS   3#define CC_CSMI_SAS_FIRMWARE_DOWNLOAD  4// Control Codes requiring CSMI_RAID_SIGNATURE#define CC_CSMI_SAS_GET_RAID_INFO      10#define CC_CSMI_SAS_GET_RAID_CONFIG    11// Control Codes requiring CSMI_SAS_SIGNATURE#define CC_CSMI_SAS_GET_PHY_INFO       20#define CC_CSMI_SAS_SET_PHY_INFO       21#define CC_CSMI_SAS_GET_LINK_ERRORS    22#define CC_CSMI_SAS_SMP_PASSTHRU       23#define CC_CSMI_SAS_SSP_PASSTHRU       24#define CC_CSMI_SAS_STP_PASSTHRU       25#define CC_CSMI_SAS_GET_SATA_SIGNATURE 26#define CC_CSMI_SAS_GET_SCSI_ADDRESS   27#define CC_CSMI_SAS_GET_DEVICE_ADDRESS 28#define CC_CSMI_SAS_TASK_MANAGEMENT    29#define CC_CSMI_SAS_GET_CONNECTOR_INFO 30#define CC_CSMI_SAS_GET_LOCATION       31// Control Codes requiring CSMI_PHY_SIGNATURE#define CC_CSMI_SAS_PHY_CONTROL        60#define IOCTL_HEADER SRB_IO_CONTROL#define PIOCTL_HEADER PSRB_IO_CONTROL#else /* _WIN32 */#define _WIN32                          0#endif /* _WIN32 *//*************************************************************************//* TARGET OS NOT DEFINED ERROR                                           *//*************************************************************************/// EDM #if (!_WIN32 && !_linux)#if (!_WIN32 && !__KERNEL__)   #error "Unknown target OS."#endif/*************************************************************************//* OS INDEPENDENT CODE                                                   *//*************************************************************************//* * * * * * * * * * Class Independent IOCTL Constants * * * * * * * * * */// Return codes for all IOCTL's regardless of class// (IoctlHeader.ReturnCode)#define CSMI_SAS_STATUS_SUCCESS              0#define CSMI_SAS_STATUS_FAILED               1#define CSMI_SAS_STATUS_BAD_CNTL_CODE        2#define CSMI_SAS_STATUS_INVALID_PARAMETER    3#define CSMI_SAS_STATUS_WRITE_ATTEMPTED      4// Signature value// (IoctlHeader.Signature)#define CSMI_ALL_SIGNATURE    "CSMIALL"// Timeout value default of 60 seconds// (IoctlHeader.Timeout)#define CSMI_ALL_TIMEOUT      60//  Direction values for data flow on this IOCTL// (IoctlHeader.Direction, Linux only)#define CSMI_SAS_DATA_READ    0#define CSMI_SAS_DATA_WRITE   1// I/O Bus Types// ISA and EISA bus types are not supported// (bIoBusType)#define CSMI_SAS_BUS_TYPE_PCI       3#define CSMI_SAS_BUS_TYPE_PCMCIA    4// Controller Status// (uStatus)#define CSMI_SAS_CNTLR_STATUS_GOOD     1#define CSMI_SAS_CNTLR_STATUS_FAILED   2#define CSMI_SAS_CNTLR_STATUS_OFFLINE  3#define CSMI_SAS_CNTLR_STATUS_POWEROFF 4// Offline Status Reason// (uOfflineReason)#define CSMI_SAS_OFFLINE_REASON_NO_REASON             0#define CSMI_SAS_OFFLINE_REASON_INITIALIZING          1#define CSMI_SAS_OFFLINE_REASON_BACKSIDE_BUS_DEGRADED 2#define CSMI_SAS_OFFLINE_REASON_BACKSIDE_BUS_FAILURE  3// Controller Class// (bControllerClass)#define CSMI_SAS_CNTLR_CLASS_HBA    5// Controller Flag bits// (uControllerFlags)#define CSMI_SAS_CNTLR_SAS_HBA   0x00000001#define CSMI_SAS_CNTLR_SAS_RAID  0x00000002#define CSMI_SAS_CNTLR_SATA_HBA  0x00000004#define CSMI_SAS_CNTLR_SATA_RAID 0x00000008// for firmware download#define CSMI_SAS_CNTLR_FWD_SUPPORT  0x00010000#define CSMI_SAS_CNTLR_FWD_ONLINE   0x00020000#define CSMI_SAS_CNTLR_FWD_SRESET   0x00040000#define CSMI_SAS_CNTLR_FWD_HRESET   0x00080000#define CSMI_SAS_CNTLR_FWD_RROM     0x00100000// Download Flag bits// (uDownloadFlags)#define CSMI_SAS_FWD_VALIDATE       0x00000001#define CSMI_SAS_FWD_SOFT_RESET     0x00000002#define CSMI_SAS_FWD_HARD_RESET     0x00000004// Firmware Download Status// (usStatus)#define CSMI_SAS_FWD_SUCCESS        0#define CSMI_SAS_FWD_FAILED         1#define CSMI_SAS_FWD_USING_RROM     2#define CSMI_SAS_FWD_REJECT         3#define CSMI_SAS_FWD_DOWNREV        4// Firmware Download Severity// (usSeverity>#define CSMI_SAS_FWD_INFORMATION    0#define CSMI_SAS_FWD_WARNING        1#define CSMI_SAS_FWD_ERROR          2#define CSMI_SAS_FWD_FATAL          3/* * * * * * * * * * SAS RAID Class IOCTL Constants  * * * * * * * * */// Return codes for the RAID IOCTL's regardless of class// (IoctlHeader.ControlCode)#define CSMI_SAS_RAID_SET_OUT_OF_RANGE       1000// Signature value// (IoctlHeader.Signature)#define CSMI_RAID_SIGNATURE    "CSMIARY"// Timeout value default of 60 seconds// (IoctlHeader.Timeout)#define CSMI_RAID_TIMEOUT      60// RAID Types// (bRaidType)#define CSMI_SAS_RAID_TYPE_NONE     0#define CSMI_SAS_RAID_TYPE_0        1#define CSMI_SAS_RAID_TYPE_1        2#define CSMI_SAS_RAID_TYPE_10       3#define CSMI_SAS_RAID_TYPE_5        4#define CSMI_SAS_RAID_TYPE_15       5#define CSMI_SAS_RAID_TYPE_OTHER    255// RAID Status// (bStatus)#define CSMI_SAS_RAID_SET_STATUS_OK          0#define CSMI_SAS_RAID_SET_STATUS_DEGRADED    1#define CSMI_SAS_RAID_SET_STATUS_REBUILDING  2#define CSMI_SAS_RAID_SET_STATUS_FAILED      3// RAID Drive Status// (bDriveStatus)#define CSMI_SAS_DRIVE_STATUS_OK          0#define CSMI_SAS_DRIVE_STATUS_REBUILDING  1#define CSMI_SAS_DRIVE_STATUS_FAILED      2#define CSMI_SAS_DRIVE_STATUS_DEGRADED    3// RAID Drive Usage// (bDriveUsage)#define CSMI_SAS_DRIVE_CONFIG_NOT_USED 0#define CSMI_SAS_DRIVE_CONFIG_MEMBER   1#define CSMI_SAS_DRIVE_CONFIG_SPARE    2/* * * * * * * * * * SAS HBA Class IOCTL Constants * * * * * * * * * */// Return codes for SAS IOCTL's// (IoctlHeader.ReturnCode)#define CSMI_SAS_PHY_INFO_CHANGED            CSMI_SAS_STATUS_SUCCESS#define CSMI_SAS_PHY_INFO_NOT_CHANGEABLE     2000#define CSMI_SAS_LINK_RATE_OUT_OF_RANGE      2001#define CSMI_SAS_PHY_DOES_NOT_EXIST          2002#define CSMI_SAS_PHY_DOES_NOT_MATCH_PORT     2003

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -