📄 mpi.h
字号:
#define MPI_FUNCTION_PORT_FACTS (0x05)#define MPI_FUNCTION_PORT_ENABLE (0x06)#define MPI_FUNCTION_EVENT_NOTIFICATION (0x07)#define MPI_FUNCTION_EVENT_ACK (0x08)#define MPI_FUNCTION_FW_DOWNLOAD (0x09)#define MPI_FUNCTION_TARGET_CMD_BUFFER_POST (0x0A)#define MPI_FUNCTION_TARGET_ASSIST (0x0B)#define MPI_FUNCTION_TARGET_STATUS_SEND (0x0C)#define MPI_FUNCTION_TARGET_MODE_ABORT (0x0D)#define MPI_FUNCTION_FC_LINK_SRVC_BUF_POST (0x0E)#define MPI_FUNCTION_FC_LINK_SRVC_RSP (0x0F)#define MPI_FUNCTION_FC_EX_LINK_SRVC_SEND (0x10)#define MPI_FUNCTION_FC_ABORT (0x11)#define MPI_FUNCTION_FW_UPLOAD (0x12)#define MPI_FUNCTION_FC_COMMON_TRANSPORT_SEND (0x13)#define MPI_FUNCTION_FC_PRIMITIVE_SEND (0x14)#define MPI_FUNCTION_RAID_ACTION (0x15)#define MPI_FUNCTION_RAID_SCSI_IO_PASSTHROUGH (0x16)#define MPI_FUNCTION_TOOLBOX (0x17)#define MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR (0x18)#define MPI_FUNCTION_MAILBOX (0x19)#define MPI_FUNCTION_SMP_PASSTHROUGH (0x1A)#define MPI_FUNCTION_SAS_IO_UNIT_CONTROL (0x1B)#define MPI_FUNCTION_SATA_PASSTHROUGH (0x1C)#define MPI_FUNCTION_DIAG_BUFFER_POST (0x1D)#define MPI_FUNCTION_DIAG_RELEASE (0x1E)#define MPI_FUNCTION_SCSI_IO_32 (0x1F)#define MPI_FUNCTION_LAN_SEND (0x20)#define MPI_FUNCTION_LAN_RECEIVE (0x21)#define MPI_FUNCTION_LAN_RESET (0x22)#define MPI_FUNCTION_TARGET_ASSIST_EXTENDED (0x23)#define MPI_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24)#define MPI_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25)#define MPI_FUNCTION_INBAND_BUFFER_POST (0x28)#define MPI_FUNCTION_INBAND_SEND (0x29)#define MPI_FUNCTION_INBAND_RSP (0x2A)#define MPI_FUNCTION_INBAND_ABORT (0x2B)#define MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40)#define MPI_FUNCTION_IO_UNIT_RESET (0x41)#define MPI_FUNCTION_HANDSHAKE (0x42)#define MPI_FUNCTION_REPLY_FRAME_REMOVAL (0x43)#define MPI_FUNCTION_HOST_PAGEBUF_ACCESS_CONTROL (0x44)/* standard version format */typedef struct _MPI_VERSION_STRUCT{ U8 Dev; /* 00h */ U8 Unit; /* 01h */ U8 Minor; /* 02h */ U8 Major; /* 03h */} MPI_VERSION_STRUCT, MPI_POINTER PTR_MPI_VERSION_STRUCT, MpiVersionStruct_t, MPI_POINTER pMpiVersionStruct;typedef union _MPI_VERSION_FORMAT{ MPI_VERSION_STRUCT Struct; U32 Word;} MPI_VERSION_FORMAT, MPI_POINTER PTR_MPI_VERSION_FORMAT, MpiVersionFormat_t, MPI_POINTER pMpiVersionFormat_t;/******************************************************************************* S c a t t e r G a t h e r E l e m e n t s******************************************************************************//****************************************************************************//* Simple element structures *//****************************************************************************/typedef struct _SGE_SIMPLE32{ U32 FlagsLength; U32 Address;} SGE_SIMPLE32, MPI_POINTER PTR_SGE_SIMPLE32, SGESimple32_t, MPI_POINTER pSGESimple32_t;typedef struct _SGE_SIMPLE64{ U32 FlagsLength; U64 Address;} SGE_SIMPLE64, MPI_POINTER PTR_SGE_SIMPLE64, SGESimple64_t, MPI_POINTER pSGESimple64_t;typedef struct _SGE_SIMPLE_UNION{ U32 FlagsLength; union { U32 Address32; U64 Address64; }u;} SGE_SIMPLE_UNION, MPI_POINTER PTR_SGE_SIMPLE_UNION, SGESimpleUnion_t, MPI_POINTER pSGESimpleUnion_t;/****************************************************************************//* Chain element structures *//****************************************************************************/typedef struct _SGE_CHAIN32{ U16 Length; U8 NextChainOffset; U8 Flags; U32 Address;} SGE_CHAIN32, MPI_POINTER PTR_SGE_CHAIN32, SGEChain32_t, MPI_POINTER pSGEChain32_t;typedef struct _SGE_CHAIN64{ U16 Length; U8 NextChainOffset; U8 Flags; U64 Address;} SGE_CHAIN64, MPI_POINTER PTR_SGE_CHAIN64, SGEChain64_t, MPI_POINTER pSGEChain64_t;typedef struct _SGE_CHAIN_UNION{ U16 Length; U8 NextChainOffset; U8 Flags; union { U32 Address32; U64 Address64; }u;} SGE_CHAIN_UNION, MPI_POINTER PTR_SGE_CHAIN_UNION, SGEChainUnion_t, MPI_POINTER pSGEChainUnion_t;/****************************************************************************//* Transaction Context element *//****************************************************************************/typedef struct _SGE_TRANSACTION32{ U8 Reserved; U8 ContextSize; U8 DetailsLength; U8 Flags; U32 TransactionContext[1]; U32 TransactionDetails[1];} SGE_TRANSACTION32, MPI_POINTER PTR_SGE_TRANSACTION32, SGETransaction32_t, MPI_POINTER pSGETransaction32_t;typedef struct _SGE_TRANSACTION64{ U8 Reserved; U8 ContextSize; U8 DetailsLength; U8 Flags; U32 TransactionContext[2]; U32 TransactionDetails[1];} SGE_TRANSACTION64, MPI_POINTER PTR_SGE_TRANSACTION64, SGETransaction64_t, MPI_POINTER pSGETransaction64_t;typedef struct _SGE_TRANSACTION96{ U8 Reserved; U8 ContextSize; U8 DetailsLength; U8 Flags; U32 TransactionContext[3]; U32 TransactionDetails[1];} SGE_TRANSACTION96, MPI_POINTER PTR_SGE_TRANSACTION96, SGETransaction96_t, MPI_POINTER pSGETransaction96_t;typedef struct _SGE_TRANSACTION128{ U8 Reserved; U8 ContextSize; U8 DetailsLength; U8 Flags; U32 TransactionContext[4]; U32 TransactionDetails[1];} SGE_TRANSACTION128, MPI_POINTER PTR_SGE_TRANSACTION128, SGETransaction_t128, MPI_POINTER pSGETransaction_t128;typedef struct _SGE_TRANSACTION_UNION{ U8 Reserved; U8 ContextSize; U8 DetailsLength; U8 Flags; union { U32 TransactionContext32[1]; U32 TransactionContext64[2]; U32 TransactionContext96[3]; U32 TransactionContext128[4]; }u; U32 TransactionDetails[1];} SGE_TRANSACTION_UNION, MPI_POINTER PTR_SGE_TRANSACTION_UNION, SGETransactionUnion_t, MPI_POINTER pSGETransactionUnion_t;/****************************************************************************//* SGE IO types union for IO SGL's *//****************************************************************************/typedef struct _SGE_IO_UNION{ union { SGE_SIMPLE_UNION Simple; SGE_CHAIN_UNION Chain; } u;} SGE_IO_UNION, MPI_POINTER PTR_SGE_IO_UNION, SGEIOUnion_t, MPI_POINTER pSGEIOUnion_t;/****************************************************************************//* SGE union for SGL's with Simple and Transaction elements *//****************************************************************************/typedef struct _SGE_TRANS_SIMPLE_UNION{ union { SGE_SIMPLE_UNION Simple; SGE_TRANSACTION_UNION Transaction; } u;} SGE_TRANS_SIMPLE_UNION, MPI_POINTER PTR_SGE_TRANS_SIMPLE_UNION, SGETransSimpleUnion_t, MPI_POINTER pSGETransSimpleUnion_t;/****************************************************************************//* All SGE types union *//****************************************************************************/typedef struct _SGE_MPI_UNION{ union { SGE_SIMPLE_UNION Simple; SGE_CHAIN_UNION Chain; SGE_TRANSACTION_UNION Transaction; } u;} SGE_MPI_UNION, MPI_POINTER PTR_SGE_MPI_UNION, MPI_SGE_UNION_t, MPI_POINTER pMPI_SGE_UNION_t, SGEAllUnion_t, MPI_POINTER pSGEAllUnion_t;/****************************************************************************//* SGE field definition and masks *//****************************************************************************//* Flags field bit definitions */#define MPI_SGE_FLAGS_LAST_ELEMENT (0x80)#define MPI_SGE_FLAGS_END_OF_BUFFER (0x40)#define MPI_SGE_FLAGS_ELEMENT_TYPE_MASK (0x30)#define MPI_SGE_FLAGS_LOCAL_ADDRESS (0x08)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -