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

📄 mpi.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
📖 第 1 页 / 共 2 页
字号:
    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)#define MPI_SGE_FLAGS_DIRECTION                 (0x04)#define MPI_SGE_FLAGS_ADDRESS_SIZE              (0x02)#define MPI_SGE_FLAGS_END_OF_LIST               (0x01)#define MPI_SGE_FLAGS_SHIFT                     (24)#define MPI_SGE_LENGTH_MASK                     (0x00FFFFFF)#define MPI_SGE_CHAIN_LENGTH_MASK               (0x0000FFFF)/* Element Type */#define MPI_SGE_FLAGS_TRANSACTION_ELEMENT       (0x00)#define MPI_SGE_FLAGS_SIMPLE_ELEMENT            (0x10)#define MPI_SGE_FLAGS_CHAIN_ELEMENT             (0x30)#define MPI_SGE_FLAGS_ELEMENT_MASK              (0x30)/* Address location */#define MPI_SGE_FLAGS_SYSTEM_ADDRESS            (0x00)/* Direction */#define MPI_SGE_FLAGS_IOC_TO_HOST               (0x00)#define MPI_SGE_FLAGS_HOST_TO_IOC               (0x04)/* Address Size */#define MPI_SGE_FLAGS_32_BIT_ADDRESSING         (0x00)#define MPI_SGE_FLAGS_64_BIT_ADDRESSING         (0x02)/* Context Size */#define MPI_SGE_FLAGS_32_BIT_CONTEXT            (0x00)#define MPI_SGE_FLAGS_64_BIT_CONTEXT            (0x02)#define MPI_SGE_FLAGS_96_BIT_CONTEXT            (0x04)#define MPI_SGE_FLAGS_128_BIT_CONTEXT           (0x06)#define MPI_SGE_CHAIN_OFFSET_MASK               (0x00FF0000)#define MPI_SGE_CHAIN_OFFSET_SHIFT              (16)/****************************************************************************//*  SGE operation Macros                                                    *//****************************************************************************/         /* SIMPLE FlagsLength manipulations... */#define  MPI_SGE_SET_FLAGS(f)           ((U32)(f) << MPI_SGE_FLAGS_SHIFT)#define  MPI_SGE_GET_FLAGS(fl)          (((fl) & ~MPI_SGE_LENGTH_MASK) >> MPI_SGE_FLAGS_SHIFT)#define  MPI_SGE_LENGTH(fl)             ((fl) & MPI_SGE_LENGTH_MASK)#define  MPI_SGE_CHAIN_LENGTH(fl)       ((fl) & MPI_SGE_CHAIN_LENGTH_MASK)#define  MPI_SGE_SET_FLAGS_LENGTH(f,l)  (MPI_SGE_SET_FLAGS(f) | MPI_SGE_LENGTH(l))#define  MPI_pSGE_GET_FLAGS(psg)        MPI_SGE_GET_FLAGS((psg)->FlagsLength)#define  MPI_pSGE_GET_LENGTH(psg)       MPI_SGE_LENGTH((psg)->FlagsLength)#define  MPI_pSGE_SET_FLAGS_LENGTH(psg,f,l)  (psg)->FlagsLength = MPI_SGE_SET_FLAGS_LENGTH(f,l)         /* CAUTION - The following are READ-MODIFY-WRITE! */#define  MPI_pSGE_SET_FLAGS(psg,f)      (psg)->FlagsLength |= MPI_SGE_SET_FLAGS(f)#define  MPI_pSGE_SET_LENGTH(psg,l)     (psg)->FlagsLength |= MPI_SGE_LENGTH(l)#define  MPI_GET_CHAIN_OFFSET(x) ((x&MPI_SGE_CHAIN_OFFSET_MASK)>>MPI_SGE_CHAIN_OFFSET_SHIFT)/*******************************************************************************        S t a n d a r d    M e s s a g e    S t r u c t u r e s******************************************************************************//****************************************************************************//* Standard message request header for all request messages                 *//****************************************************************************/typedef struct _MSG_REQUEST_HEADER{    U8                      Reserved[2];      /* function specific */    U8                      ChainOffset;    U8                      Function;    U8                      Reserved1[3];     /* function specific */    U8                      MsgFlags;    U32                     MsgContext;} MSG_REQUEST_HEADER, MPI_POINTER PTR_MSG_REQUEST_HEADER,  MPIHeader_t, MPI_POINTER pMPIHeader_t;/****************************************************************************//*  Default Reply                                                           *//****************************************************************************/typedef struct _MSG_DEFAULT_REPLY{    U8                      Reserved[2];      /* function specific */    U8                      MsgLength;    U8                      Function;    U8                      Reserved1[3];     /* function specific */    U8                      MsgFlags;    U32                     MsgContext;    U8                      Reserved2[2];     /* function specific */    U16                     IOCStatus;    U32                     IOCLogInfo;} MSG_DEFAULT_REPLY, MPI_POINTER PTR_MSG_DEFAULT_REPLY,  MPIDefaultReply_t, MPI_POINTER pMPIDefaultReply_t;/* MsgFlags definition for all replies */#define MPI_MSGFLAGS_CONTINUATION_REPLY         (0x80)/*******************************************************************************               I O C    S t a t u s   V a l u e s******************************************************************************//****************************************************************************//*  Common IOCStatus values for all replies                                 *//****************************************************************************/#define MPI_IOCSTATUS_SUCCESS                  (0x0000)#define MPI_IOCSTATUS_INVALID_FUNCTION         (0x0001)#define MPI_IOCSTATUS_BUSY                     (0x0002)#define MPI_IOCSTATUS_INVALID_SGL              (0x0003)#define MPI_IOCSTATUS_INTERNAL_ERROR           (0x0004)#define MPI_IOCSTATUS_RESERVED                 (0x0005)#define MPI_IOCSTATUS_INSUFFICIENT_RESOURCES   (0x0006)#define MPI_IOCSTATUS_INVALID_FIELD            (0x0007)#define MPI_IOCSTATUS_INVALID_STATE            (0x0008)/****************************************************************************//*  Config IOCStatus values                                                 *//****************************************************************************/#define MPI_IOCSTATUS_CONFIG_INVALID_ACTION    (0x0020)#define MPI_IOCSTATUS_CONFIG_INVALID_TYPE      (0x0021)#define MPI_IOCSTATUS_CONFIG_INVALID_PAGE      (0x0022)#define MPI_IOCSTATUS_CONFIG_INVALID_DATA      (0x0023)#define MPI_IOCSTATUS_CONFIG_NO_DEFAULTS       (0x0024)#define MPI_IOCSTATUS_CONFIG_CANT_COMMIT       (0x0025)/****************************************************************************//*  SCSIIO Reply (SPI & FCP) initiator values                               *//****************************************************************************/#define MPI_IOCSTATUS_SCSI_RECOVERED_ERROR     (0x0040)#define MPI_IOCSTATUS_SCSI_INVALID_BUS         (0x0041)#define MPI_IOCSTATUS_SCSI_INVALID_TARGETID    (0x0042)#define MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE    (0x0043)#define MPI_IOCSTATUS_SCSI_DATA_OVERRUN        (0x0044)#define MPI_IOCSTATUS_SCSI_DATA_UNDERRUN       (0x0045)#define MPI_IOCSTATUS_SCSI_IO_DATA_ERROR       (0x0046)#define MPI_IOCSTATUS_SCSI_PROTOCOL_ERROR      (0x0047)#define MPI_IOCSTATUS_SCSI_TASK_TERMINATED     (0x0048)#define MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH   (0x0049)#define MPI_IOCSTATUS_SCSI_TASK_MGMT_FAILED    (0x004A)#define MPI_IOCSTATUS_SCSI_IOC_TERMINATED      (0x004B)#define MPI_IOCSTATUS_SCSI_EXT_TERMINATED      (0x004C)/****************************************************************************//*  SCSI (SPI & FCP) target values                                          *//****************************************************************************/#define MPI_IOCSTATUS_TARGET_PRIORITY_IO         (0x0060)#define MPI_IOCSTATUS_TARGET_INVALID_PORT        (0x0061)#define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX    (0x0062)#define MPI_IOCSTATUS_TARGET_ABORTED             (0x0063)#define MPI_IOCSTATUS_TARGET_NO_CONN_RETRYABLE   (0x0064)#define MPI_IOCSTATUS_TARGET_NO_CONNECTION       (0x0065)#define MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH (0x006A)#define MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT   (0x006B)/****************************************************************************//*  Additional FCP target values                                            *//****************************************************************************/#define MPI_IOCSTATUS_TARGET_FC_ABORTED         (0x0066)    /* obsolete */#define MPI_IOCSTATUS_TARGET_FC_RX_ID_INVALID   (0x0067)    /* obsolete */#define MPI_IOCSTATUS_TARGET_FC_DID_INVALID     (0x0068)    /* obsolete */#define MPI_IOCSTATUS_TARGET_FC_NODE_LOGGED_OUT (0x0069)    /* obsolete *//****************************************************************************//*  Fibre Channel Direct Access values                                      *//****************************************************************************/#define MPI_IOCSTATUS_FC_ABORTED                (0x0066)#define MPI_IOCSTATUS_FC_RX_ID_INVALID          (0x0067)#define MPI_IOCSTATUS_FC_DID_INVALID            (0x0068)#define MPI_IOCSTATUS_FC_NODE_LOGGED_OUT        (0x0069)/****************************************************************************//*  LAN values                                                              *//****************************************************************************/#define MPI_IOCSTATUS_LAN_DEVICE_NOT_FOUND      (0x0080)#define MPI_IOCSTATUS_LAN_DEVICE_FAILURE        (0x0081)#define MPI_IOCSTATUS_LAN_TRANSMIT_ERROR        (0x0082)#define MPI_IOCSTATUS_LAN_TRANSMIT_ABORTED      (0x0083)#define MPI_IOCSTATUS_LAN_RECEIVE_ERROR         (0x0084)#define MPI_IOCSTATUS_LAN_RECEIVE_ABORTED       (0x0085)#define MPI_IOCSTATUS_LAN_PARTIAL_PACKET        (0x0086)#define MPI_IOCSTATUS_LAN_CANCELED              (0x0087)/****************************************************************************//*  IOCStatus flag to indicate that log info is available                   *//****************************************************************************/#define MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE   (0x8000)#define MPI_IOCSTATUS_MASK                      (0x7FFF)/****************************************************************************//*  LogInfo Types                                                           *//****************************************************************************/#define MPI_IOCLOGINFO_TYPE_MASK                (0xF0000000)#define MPI_IOCLOGINFO_TYPE_NONE                (0x0)#define MPI_IOCLOGINFO_TYPE_SCSI                (0x1)#define MPI_IOCLOGINFO_TYPE_FC                  (0x2)#define MPI_IOCLOGINFO_LOG_DATA_MASK            (0x0FFFFFFF)#endif

⌨️ 快捷键说明

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