📄 csmisas.h
字号:
#define CSMI_SAS_PHY_CANNOT_BE_SELECTED 2004#define CSMI_SAS_SELECT_PHY_OR_PORT 2005#define CSMI_SAS_PORT_DOES_NOT_EXIST 2006#define CSMI_SAS_PORT_CANNOT_BE_SELECTED 2007#define CSMI_SAS_CONNECTION_FAILED 2008#define CSMI_SAS_NO_SATA_DEVICE 2009#define CSMI_SAS_NO_SATA_SIGNATURE 2010#define CSMI_SAS_SCSI_EMULATION 2011#define CSMI_SAS_NOT_AN_END_DEVICE 2012#define CSMI_SAS_NO_SCSI_ADDRESS 2013#define CSMI_SAS_NO_DEVICE_ADDRESS 2014// Signature value// (IoctlHeader.Signature)#define CSMI_SAS_SIGNATURE "CSMISAS"// Timeout value default of 60 seconds// (IoctlHeader.Timeout)#define CSMI_SAS_TIMEOUT 60// Device types// (bDeviceType)#define CSMI_SAS_PHY_UNUSED 0x00#define CSMI_SAS_NO_DEVICE_ATTACHED 0x00#define CSMI_SAS_END_DEVICE 0x10#define CSMI_SAS_EDGE_EXPANDER_DEVICE 0x20#define CSMI_SAS_FANOUT_EXPANDER_DEVICE 0x30// Protocol options// (bInitiatorPortProtocol, bTargetPortProtocol)#define CSMI_SAS_PROTOCOL_SATA 0x01#define CSMI_SAS_PROTOCOL_SMP 0x02#define CSMI_SAS_PROTOCOL_STP 0x04#define CSMI_SAS_PROTOCOL_SSP 0x08// Negotiated and hardware link rates// (bNegotiatedLinkRate, bMinimumLinkRate, bMaximumLinkRate)#define CSMI_SAS_LINK_RATE_UNKNOWN 0x00#define CSMI_SAS_PHY_DISABLED 0x01#define CSMI_SAS_LINK_RATE_FAILED 0x02#define CSMI_SAS_SATA_SPINUP_HOLD 0x03#define CSMI_SAS_SATA_PORT_SELECTOR 0x04#define CSMI_SAS_LINK_RATE_1_5_GBPS 0x08#define CSMI_SAS_LINK_RATE_3_0_GBPS 0x09#define CSMI_SAS_LINK_VIRTUAL 0x10// Discover state// (bAutoDiscover)#define CSMI_SAS_DISCOVER_NOT_SUPPORTED 0x00#define CSMI_SAS_DISCOVER_NOT_STARTED 0x01#define CSMI_SAS_DISCOVER_IN_PROGRESS 0x02#define CSMI_SAS_DISCOVER_COMPLETE 0x03#define CSMI_SAS_DISCOVER_ERROR 0x04// Programmed link rates// (bMinimumLinkRate, bMaximumLinkRate)// (bProgrammedMinimumLinkRate, bProgrammedMaximumLinkRate)#define CSMI_SAS_PROGRAMMED_LINK_RATE_UNCHANGED 0x00#define CSMI_SAS_PROGRAMMED_LINK_RATE_1_5_GBPS 0x08#define CSMI_SAS_PROGRAMMED_LINK_RATE_3_0_GBPS 0x09// Link rate// (bNegotiatedLinkRate in CSMI_SAS_SET_PHY_INFO)#define CSMI_SAS_LINK_RATE_NEGOTIATE 0x00#define CSMI_SAS_LINK_RATE_PHY_DISABLED 0x01// Signal class// (bSignalClass in CSMI_SAS_SET_PHY_INFO)#define CSMI_SAS_SIGNAL_CLASS_UNKNOWN 0x00#define CSMI_SAS_SIGNAL_CLASS_DIRECT 0x01#define CSMI_SAS_SIGNAL_CLASS_SERVER 0x02#define CSMI_SAS_SIGNAL_CLASS_ENCLOSURE 0x03// Link error reset// (bResetCounts)#define CSMI_SAS_LINK_ERROR_DONT_RESET_COUNTS 0x00#define CSMI_SAS_LINK_ERROR_RESET_COUNTS 0x01// Phy identifier// (bPhyIdentifier)#define CSMI_SAS_USE_PORT_IDENTIFIER 0xFF// Port identifier// (bPortIdentifier)#define CSMI_SAS_IGNORE_PORT 0xFF// Programmed link rates// (bConnectionRate)#define CSMI_SAS_LINK_RATE_NEGOTIATED 0x00#define CSMI_SAS_LINK_RATE_1_5_GBPS 0x08#define CSMI_SAS_LINK_RATE_3_0_GBPS 0x09// Connection status// (bConnectionStatus)#define CSMI_SAS_OPEN_ACCEPT 0#define CSMI_SAS_OPEN_REJECT_BAD_DESTINATION 1#define CSMI_SAS_OPEN_REJECT_RATE_NOT_SUPPORTED 2#define CSMI_SAS_OPEN_REJECT_NO_DESTINATION 3#define CSMI_SAS_OPEN_REJECT_PATHWAY_BLOCKED 4#define CSMI_SAS_OPEN_REJECT_PROTOCOL_NOT_SUPPORTED 5#define CSMI_SAS_OPEN_REJECT_RESERVE_ABANDON 6#define CSMI_SAS_OPEN_REJECT_RESERVE_CONTINUE 7#define CSMI_SAS_OPEN_REJECT_RESERVE_INITIALIZE 8#define CSMI_SAS_OPEN_REJECT_RESERVE_STOP 9#define CSMI_SAS_OPEN_REJECT_RETRY 10#define CSMI_SAS_OPEN_REJECT_STP_RESOURCES_BUSY 11#define CSMI_SAS_OPEN_REJECT_WRONG_DESTINATION 12// SSP Status// (bSSPStatus)#define CSMI_SAS_SSP_STATUS_UNKNOWN 0x00#define CSMI_SAS_SSP_STATUS_WAITING 0x01#define CSMI_SAS_SSP_STATUS_COMPLETED 0x02#define CSMI_SAS_SSP_STATUS_FATAL_ERROR 0x03#define CSMI_SAS_SSP_STATUS_RETRY 0x04#define CSMI_SAS_SSP_STATUS_NO_TAG 0x05// SSP Flags// (uFlags)#define CSMI_SAS_SSP_READ 0x00000001#define CSMI_SAS_SSP_WRITE 0x00000002#define CSMI_SAS_SSP_UNSPECIFIED 0x00000004#define CSMI_SAS_SSP_TASK_ATTRIBUTE_SIMPLE 0x00000000#define CSMI_SAS_SSP_TASK_ATTRIBUTE_HEAD_OF_QUEUE 0x00000010#define CSMI_SAS_SSP_TASK_ATTRIBUTE_ORDERED 0x00000020#define CSMI_SAS_SSP_TASK_ATTRIBUTE_ACA 0x00000040// SSP Data present// (bDataPresent)#define CSMI_SAS_SSP_NO_DATA_PRESENT 0x00#define CSMI_SAS_SSP_RESPONSE_DATA_PRESENT 0x01#define CSMI_SAS_SSP_SENSE_DATA_PRESENT 0x02// STP Flags// (uFlags)#define CSMI_SAS_STP_READ 0x00000001#define CSMI_SAS_STP_WRITE 0x00000002#define CSMI_SAS_STP_UNSPECIFIED 0x00000004#define CSMI_SAS_STP_PIO 0x00000010#define CSMI_SAS_STP_DMA 0x00000020#define CSMI_SAS_STP_PACKET 0x00000040#define CSMI_SAS_STP_DMA_QUEUED 0x00000080#define CSMI_SAS_STP_EXECUTE_DIAG 0x00000100#define CSMI_SAS_STP_RESET_DEVICE 0x00000200// Task Management Flags// (uFlags)#define CSMI_SAS_TASK_IU 0x00000001#define CSMI_SAS_HARD_RESET_SEQUENCE 0x00000002#define CSMI_SAS_SUPPRESS_RESULT 0x00000004// Task Management Functions// (bTaskManagement)#define CSMI_SAS_SSP_ABORT_TASK 0x01#define CSMI_SAS_SSP_ABORT_TASK_SET 0x02#define CSMI_SAS_SSP_CLEAR_TASK_SET 0x04#define CSMI_SAS_SSP_LOGICAL_UNIT_RESET 0x08#define CSMI_SAS_SSP_CLEAR_ACA 0x40#define CSMI_SAS_SSP_QUERY_TASK 0x80// Task Management Information// (uInformation)#define CSMI_SAS_SSP_TEST 1#define CSMI_SAS_SSP_EXCEEDED 2#define CSMI_SAS_SSP_DEMAND 3#define CSMI_SAS_SSP_TRIGGER 4// Connector Pinout Information// (uPinout)#define CSMI_SAS_CON_UNKNOWN 0x00000001#define CSMI_SAS_CON_SFF_8482 0x00000002#define CSMI_SAS_CON_SFF_8470_LANE_1 0x00000100#define CSMI_SAS_CON_SFF_8470_LANE_2 0x00000200#define CSMI_SAS_CON_SFF_8470_LANE_3 0x00000400#define CSMI_SAS_CON_SFF_8470_LANE_4 0x00000800#define CSMI_SAS_CON_SFF_8484_LANE_1 0x00010000#define CSMI_SAS_CON_SFF_8484_LANE_2 0x00020000#define CSMI_SAS_CON_SFF_8484_LANE_3 0x00040000#define CSMI_SAS_CON_SFF_8484_LANE_4 0x00080000// Connector Location Information// (bLocation)// same as uPinout above...// #define CSMI_SAS_CON_UNKNOWN 0x01#define CSMI_SAS_CON_INTERNAL 0x02#define CSMI_SAS_CON_EXTERNAL 0x04#define CSMI_SAS_CON_SWITCHABLE 0x08#define CSMI_SAS_CON_AUTO 0x10#define CSMI_SAS_CON_NOT_PRESENT 0x20#define CSMI_SAS_CON_NOT_CONNECTED 0x80// Device location identification// (bIdentify)#define CSMI_SAS_LOCATE_UNKNOWN 0x00#define CSMI_SAS_LOCATE_FORCE_OFF 0x01#define CSMI_SAS_LOCATE_FORCE_ON 0x02// Location Valid flags// (uLocationFlags)#define CSMI_SAS_LOCATE_SAS_ADDRESS_VALID 0x00000001#define CSMI_SAS_LOCATE_SAS_LUN_VALID 0x00000002#define CSMI_SAS_LOCATE_ENCLOSURE_IDENTIFIER_VALID 0x00000004#define CSMI_SAS_LOCATE_ENCLOSURE_NAME_VALID 0x00000008#define CSMI_SAS_LOCATE_BAY_PREFIX_VALID 0x00000010#define CSMI_SAS_LOCATE_BAY_IDENTIFIER_VALID 0x00000020#define CSMI_SAS_LOCATE_LOCATION_STATE_VALID 0x00000040/* * * * * * * * SAS Phy Control Class IOCTL Constants * * * * * * * * */// Return codes for SAS Phy Control IOCTL's// (IoctlHeader.ReturnCode)// Signature value// (IoctlHeader.Signature)#define CSMI_PHY_SIGNATURE "CSMIPHY"// Phy Control Functions// (bFunction)// values 0x00 to 0xFF are consistent in definition with the SMP PHY CONTROL // function defined in the SAS spec#define CSMI_SAS_PC_NOP 0x00000000#define CSMI_SAS_PC_LINK_RESET 0x00000001#define CSMI_SAS_PC_HARD_RESET 0x00000002#define CSMI_SAS_PC_PHY_DISABLE 0x00000003// 0x04 to 0xFF reserved...#define CSMI_SAS_PC_GET_PHY_SETTINGS 0x00000100// Link Flags#define CSMI_SAS_PHY_ACTIVATE_CONTROL 0x00000001#define CSMI_SAS_PHY_UPDATE_SPINUP_RATE 0x00000002#define CSMI_SAS_PHY_AUTO_COMWAKE 0x00000004// Device Types for Phy Settings// (bType)#define CSMI_SAS_UNDEFINED 0x00#define CSMI_SAS_SATA 0x01#define CSMI_SAS_SAS 0x02// Transmitter Flags// (uTransmitterFlags)#define CSMI_SAS_PHY_PREEMPHASIS_DISABLED 0x00000001// Receiver Flags// (uReceiverFlags)#define CSMI_SAS_PHY_EQUALIZATION_DISABLED 0x00000001// Pattern Flags// (uPatternFlags)// #define CSMI_SAS_PHY_ACTIVATE_CONTROL 0x00000001#define CSMI_SAS_PHY_DISABLE_SCRAMBLING 0x00000002#define CSMI_SAS_PHY_DISABLE_ALIGN 0x00000004#define CSMI_SAS_PHY_DISABLE_SSC 0x00000008#define CSMI_SAS_PHY_FIXED_PATTERN 0x00000010#define CSMI_SAS_PHY_USER_PATTERN 0x00000020// Fixed Patterns// (bFixedPattern)#define CSMI_SAS_PHY_CJPAT 0x00000001#define CSMI_SAS_PHY_ALIGN 0x00000002// Type Flags// (bTypeFlags)#define CSMI_SAS_PHY_POSITIVE_DISPARITY 0x01#define CSMI_SAS_PHY_NEGATIVE_DISPARITY 0x02#define CSMI_SAS_PHY_CONTROL_CHARACTER 0x04// Miscellaneous#define SLOT_NUMBER_UNKNOWN 0xFFFF/*************************************************************************//* DATA STRUCTURES *//*************************************************************************//* * * * * * * * * * Class Independent Structures * * * * * * * * * */// EDM #pragma CSMI_SAS_BEGIN_PACK(8)#pragma pack(8)// CC_CSMI_SAS_DRIVER_INFOtypedef struct _CSMI_SAS_DRIVER_INFO { __u8 szName[81]; __u8 szDescription[81]; __u16 usMajorRevision; __u16 usMinorRevision; __u16 usBuildRevision; __u16 usReleaseRevision; __u16 usCSMIMajorRevision; __u16 usCSMIMinorRevision;} CSMI_SAS_DRIVER_INFO, *PCSMI_SAS_DRIVER_INFO;typedef struct _CSMI_SAS_DRIVER_INFO_BUFFER { IOCTL_HEADER IoctlHeader; CSMI_SAS_DRIVER_INFO Information;} CSMI_SAS_DRIVER_INFO_BUFFER, *PCSMI_SAS_DRIVER_INFO_BUFFER;// CC_CSMI_SAS_CNTLR_CONFIGURATIONtypedef struct _CSMI_SAS_PCI_BUS_ADDRESS { __u8 bBusNumber; __u8 bDeviceNumber; __u8 bFunctionNumber; __u8 bReserved;} CSMI_SAS_PCI_BUS_ADDRESS, *PCSMI_SAS_PCI_BUS_ADDRESS;typedef union _CSMI_SAS_IO_BUS_ADDRESS { CSMI_SAS_PCI_BUS_ADDRESS PciAddress; __u8 bReserved[32];} CSMI_SAS_IO_BUS_ADDRESS, *PCSMI_SAS_IO_BUS_ADDRESS;typedef struct _CSMI_SAS_CNTLR_CONFIG { __u32 uBaseIoAddress; struct { __u32 uLowPart; __u32 uHighPart; } BaseMemoryAddress; __u32 uBoardID; __u16 usSlotNumber; __u8 bControllerClass; __u8 bIoBusType; CSMI_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];} CSMI_SAS_CNTLR_CONFIG, *PCSMI_SAS_CNTLR_CONFIG;typedef struct _CSMI_SAS_CNTLR_CONFIG_BUFFER { IOCTL_HEADER IoctlHeader; CSMI_SAS_CNTLR_CONFIG Configuration;} CSMI_SAS_CNTLR_CONFIG_BUFFER, *PCSMI_SAS_CNTLR_CONFIG_BUFFER;// CC_CSMI_SAS_CNTLR_STATUStypedef struct _CSMI_SAS_CNTLR_STATUS { __u32 uStatus; __u32 uOfflineReason; __u8 bReserved[28];} CSMI_SAS_CNTLR_STATUS, *PCSMI_SAS_CNTLR_STATUS;typedef struct _CSMI_SAS_CNTLR_STATUS_BUFFER { IOCTL_HEADER IoctlHeader; CSMI_SAS_CNTLR_STATUS Status;} CSMI_SAS_CNTLR_STATUS_BUFFER, *PCSMI_SAS_CNTLR_STATUS_BUFFER;// CC_CSMI_SAS_FIRMWARE_DOWNLOADtypedef struct _CSMI_SAS_FIRMWARE_DOWNLOAD { __u32 uBufferLength; __u32 uDownloadFlags; __u8 bReserved[32]; __u16 usStatus; __u16 usSeverity;} CSMI_SAS_FIRMWARE_DOWNLOAD, *PCSMI_SAS_FIRMWARE_DOWNLOAD;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -