| /* | 
 |  *  Copyright (c) 2003-2004 LSI Logic Corporation. | 
 |  * | 
 |  * | 
 |  *           Name:  mpi_inb.h | 
 |  *          Title:  MPI Inband structures and definitions | 
 |  *  Creation Date:  September 30, 2003 | 
 |  * | 
 |  *    mpi_inb.h Version:  01.05.01 | 
 |  * | 
 |  *  Version History | 
 |  *  --------------- | 
 |  * | 
 |  *  Date      Version   Description | 
 |  *  --------  --------  ------------------------------------------------------ | 
 |  *  05-11-04  01.03.01  Original release. | 
 |  *  08-19-04  01.05.01  Original release for MPI v1.5. | 
 |  *  -------------------------------------------------------------------------- | 
 |  */ | 
 |  | 
 | #ifndef MPI_INB_H | 
 | #define MPI_INB_H | 
 |  | 
 | /****************************************************************************** | 
 | * | 
 | *        I n b a n d    M e s s a g e s | 
 | * | 
 | *******************************************************************************/ | 
 |  | 
 |  | 
 | /****************************************************************************/ | 
 | /* Inband Buffer Post Request                                               */ | 
 | /****************************************************************************/ | 
 |  | 
 | typedef struct _MSG_INBAND_BUFFER_POST_REQUEST | 
 | { | 
 |     U8                      Reserved1;          /* 00h */ | 
 |     U8                      BufferCount;        /* 01h */ | 
 |     U8                      ChainOffset;        /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U32                     Reserved4;          /* 0Ch */ | 
 |     SGE_TRANS_SIMPLE_UNION  SGL;                /* 10h */ | 
 | } MSG_INBAND_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REQUEST, | 
 |   MpiInbandBufferPostRequest_t , MPI_POINTER pMpiInbandBufferPostRequest_t; | 
 |  | 
 |  | 
 | typedef struct _WWN_FC_FORMAT | 
 | { | 
 |     U64                     NodeName;           /* 00h */ | 
 |     U64                     PortName;           /* 08h */ | 
 | } WWN_FC_FORMAT, MPI_POINTER PTR_WWN_FC_FORMAT, | 
 |   WwnFcFormat_t, MPI_POINTER pWwnFcFormat_t; | 
 |  | 
 | typedef struct _WWN_SAS_FORMAT | 
 | { | 
 |     U64                     WorldWideID;        /* 00h */ | 
 |     U32                     Reserved1;          /* 08h */ | 
 |     U32                     Reserved2;          /* 0Ch */ | 
 | } WWN_SAS_FORMAT, MPI_POINTER PTR_WWN_SAS_FORMAT, | 
 |   WwnSasFormat_t, MPI_POINTER pWwnSasFormat_t; | 
 |  | 
 | typedef union _WWN_INBAND_FORMAT | 
 | { | 
 |     WWN_FC_FORMAT           Fc; | 
 |     WWN_SAS_FORMAT          Sas; | 
 | } WWN_INBAND_FORMAT, MPI_POINTER PTR_WWN_INBAND_FORMAT, | 
 |   WwnInbandFormat, MPI_POINTER pWwnInbandFormat; | 
 |  | 
 |  | 
 | /* Inband Buffer Post reply message */ | 
 |  | 
 | typedef struct _MSG_INBAND_BUFFER_POST_REPLY | 
 | { | 
 |     U16                     Reserved1;          /* 00h */ | 
 |     U8                      MsgLength;          /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U16                     Reserved4;          /* 0Ch */ | 
 |     U16                     IOCStatus;          /* 0Eh */ | 
 |     U32                     IOCLogInfo;         /* 10h */ | 
 |     U32                     TransferLength;     /* 14h */ | 
 |     U32                     TransactionContext; /* 18h */ | 
 |     WWN_INBAND_FORMAT       Wwn;                /* 1Ch */ | 
 |     U32                     IOCIdentifier[4];   /* 2Ch */ | 
 | } MSG_INBAND_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REPLY, | 
 |   MpiInbandBufferPostReply_t, MPI_POINTER pMpiInbandBufferPostReply_t; | 
 |  | 
 |  | 
 | /****************************************************************************/ | 
 | /* Inband Send Request                                                      */ | 
 | /****************************************************************************/ | 
 |  | 
 | typedef struct _MSG_INBAND_SEND_REQUEST | 
 | { | 
 |     U16                     Reserved1;          /* 00h */ | 
 |     U8                      ChainOffset;        /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U32                     Reserved4;          /* 0Ch */ | 
 |     WWN_INBAND_FORMAT       Wwn;                /* 10h */ | 
 |     U32                     Reserved5;          /* 20h */ | 
 |     SGE_IO_UNION            SGL;                /* 24h */ | 
 | } MSG_INBAND_SEND_REQUEST, MPI_POINTER PTR_MSG_INBAND_SEND_REQUEST, | 
 |   MpiInbandSendRequest_t , MPI_POINTER pMpiInbandSendRequest_t; | 
 |  | 
 |  | 
 | /* Inband Send reply message */ | 
 |  | 
 | typedef struct _MSG_INBAND_SEND_REPLY | 
 | { | 
 |     U16                     Reserved1;          /* 00h */ | 
 |     U8                      MsgLength;          /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U16                     Reserved4;          /* 0Ch */ | 
 |     U16                     IOCStatus;          /* 0Eh */ | 
 |     U32                     IOCLogInfo;         /* 10h */ | 
 |     U32                     ResponseLength;     /* 14h */ | 
 | } MSG_INBAND_SEND_REPLY, MPI_POINTER PTR_MSG_INBAND_SEND_REPLY, | 
 |   MpiInbandSendReply_t, MPI_POINTER pMpiInbandSendReply_t; | 
 |  | 
 |  | 
 | /****************************************************************************/ | 
 | /* Inband Response Request                                                  */ | 
 | /****************************************************************************/ | 
 |  | 
 | typedef struct _MSG_INBAND_RSP_REQUEST | 
 | { | 
 |     U16                     Reserved1;          /* 00h */ | 
 |     U8                      ChainOffset;        /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U32                     Reserved4;          /* 0Ch */ | 
 |     WWN_INBAND_FORMAT       Wwn;                /* 10h */ | 
 |     U32                     IOCIdentifier[4];   /* 20h */ | 
 |     U32                     ResponseLength;     /* 30h */ | 
 |     SGE_IO_UNION            SGL;                /* 34h */ | 
 | } MSG_INBAND_RSP_REQUEST, MPI_POINTER PTR_MSG_INBAND_RSP_REQUEST, | 
 |   MpiInbandRspRequest_t , MPI_POINTER pMpiInbandRspRequest_t; | 
 |  | 
 |  | 
 | /* Inband Response reply message */ | 
 |  | 
 | typedef struct _MSG_INBAND_RSP_REPLY | 
 | { | 
 |     U16                     Reserved1;          /* 00h */ | 
 |     U8                      MsgLength;          /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U16                     Reserved4;          /* 0Ch */ | 
 |     U16                     IOCStatus;          /* 0Eh */ | 
 |     U32                     IOCLogInfo;         /* 10h */ | 
 | } MSG_INBAND_RSP_REPLY, MPI_POINTER PTR_MSG_INBAND_RSP_REPLY, | 
 |   MpiInbandRspReply_t, MPI_POINTER pMpiInbandRspReply_t; | 
 |  | 
 |  | 
 | /****************************************************************************/ | 
 | /* Inband Abort Request                                                     */ | 
 | /****************************************************************************/ | 
 |  | 
 | typedef struct _MSG_INBAND_ABORT_REQUEST | 
 | { | 
 |     U8                      Reserved1;          /* 00h */ | 
 |     U8                      AbortType;          /* 01h */ | 
 |     U8                      ChainOffset;        /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U32                     Reserved4;          /* 0Ch */ | 
 |     U32                     ContextToAbort;     /* 10h */ | 
 | } MSG_INBAND_ABORT_REQUEST, MPI_POINTER PTR_MSG_INBAND_ABORT_REQUEST, | 
 |   MpiInbandAbortRequest_t , MPI_POINTER pMpiInbandAbortRequest_t; | 
 |  | 
 | #define MPI_INBAND_ABORT_TYPE_ALL_BUFFERS       (0x00) | 
 | #define MPI_INBAND_ABORT_TYPE_EXACT_BUFFER      (0x01) | 
 | #define MPI_INBAND_ABORT_TYPE_SEND_REQUEST      (0x02) | 
 | #define MPI_INBAND_ABORT_TYPE_RESPONSE_REQUEST  (0x03) | 
 |  | 
 |  | 
 | /* Inband Abort reply message */ | 
 |  | 
 | typedef struct _MSG_INBAND_ABORT_REPLY | 
 | { | 
 |     U8                      Reserved1;          /* 00h */ | 
 |     U8                      AbortType;          /* 01h */ | 
 |     U8                      MsgLength;          /* 02h */ | 
 |     U8                      Function;           /* 03h */ | 
 |     U16                     Reserved2;          /* 04h */ | 
 |     U8                      Reserved3;          /* 06h */ | 
 |     U8                      MsgFlags;           /* 07h */ | 
 |     U32                     MsgContext;         /* 08h */ | 
 |     U16                     Reserved4;          /* 0Ch */ | 
 |     U16                     IOCStatus;          /* 0Eh */ | 
 |     U32                     IOCLogInfo;         /* 10h */ | 
 | } MSG_INBAND_ABORT_REPLY, MPI_POINTER PTR_MSG_INBAND_ABORT_REPLY, | 
 |   MpiInbandAbortReply_t, MPI_POINTER pMpiInbandAbortReply_t; | 
 |  | 
 |  | 
 | #endif | 
 |  |