mpi_inb.h 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. /*
  2. * Copyright (c) 2003-2004 LSI Logic Corporation.
  3. *
  4. *
  5. * Name: mpi_inb.h
  6. * Title: MPI Inband structures and definitions
  7. * Creation Date: September 30, 2003
  8. *
  9. * mpi_inb.h Version: 01.05.01
  10. *
  11. * Version History
  12. * ---------------
  13. *
  14. * Date Version Description
  15. * -------- -------- ------------------------------------------------------
  16. * 05-11-04 01.03.01 Original release.
  17. * 08-19-04 01.05.01 Original release for MPI v1.5.
  18. * --------------------------------------------------------------------------
  19. */
  20. #ifndef MPI_INB_H
  21. #define MPI_INB_H
  22. /******************************************************************************
  23. *
  24. * I n b a n d M e s s a g e s
  25. *
  26. *******************************************************************************/
  27. /****************************************************************************/
  28. /* Inband Buffer Post Request */
  29. /****************************************************************************/
  30. typedef struct _MSG_INBAND_BUFFER_POST_REQUEST
  31. {
  32. U8 Reserved1; /* 00h */
  33. U8 BufferCount; /* 01h */
  34. U8 ChainOffset; /* 02h */
  35. U8 Function; /* 03h */
  36. U16 Reserved2; /* 04h */
  37. U8 Reserved3; /* 06h */
  38. U8 MsgFlags; /* 07h */
  39. U32 MsgContext; /* 08h */
  40. U32 Reserved4; /* 0Ch */
  41. SGE_TRANS_SIMPLE_UNION SGL; /* 10h */
  42. } MSG_INBAND_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REQUEST,
  43. MpiInbandBufferPostRequest_t , MPI_POINTER pMpiInbandBufferPostRequest_t;
  44. typedef struct _WWN_FC_FORMAT
  45. {
  46. U64 NodeName; /* 00h */
  47. U64 PortName; /* 08h */
  48. } WWN_FC_FORMAT, MPI_POINTER PTR_WWN_FC_FORMAT,
  49. WwnFcFormat_t, MPI_POINTER pWwnFcFormat_t;
  50. typedef struct _WWN_SAS_FORMAT
  51. {
  52. U64 WorldWideID; /* 00h */
  53. U32 Reserved1; /* 08h */
  54. U32 Reserved2; /* 0Ch */
  55. } WWN_SAS_FORMAT, MPI_POINTER PTR_WWN_SAS_FORMAT,
  56. WwnSasFormat_t, MPI_POINTER pWwnSasFormat_t;
  57. typedef union _WWN_INBAND_FORMAT
  58. {
  59. WWN_FC_FORMAT Fc;
  60. WWN_SAS_FORMAT Sas;
  61. } WWN_INBAND_FORMAT, MPI_POINTER PTR_WWN_INBAND_FORMAT,
  62. WwnInbandFormat, MPI_POINTER pWwnInbandFormat;
  63. /* Inband Buffer Post reply message */
  64. typedef struct _MSG_INBAND_BUFFER_POST_REPLY
  65. {
  66. U16 Reserved1; /* 00h */
  67. U8 MsgLength; /* 02h */
  68. U8 Function; /* 03h */
  69. U16 Reserved2; /* 04h */
  70. U8 Reserved3; /* 06h */
  71. U8 MsgFlags; /* 07h */
  72. U32 MsgContext; /* 08h */
  73. U16 Reserved4; /* 0Ch */
  74. U16 IOCStatus; /* 0Eh */
  75. U32 IOCLogInfo; /* 10h */
  76. U32 TransferLength; /* 14h */
  77. U32 TransactionContext; /* 18h */
  78. WWN_INBAND_FORMAT Wwn; /* 1Ch */
  79. U32 IOCIdentifier[4]; /* 2Ch */
  80. } MSG_INBAND_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REPLY,
  81. MpiInbandBufferPostReply_t, MPI_POINTER pMpiInbandBufferPostReply_t;
  82. /****************************************************************************/
  83. /* Inband Send Request */
  84. /****************************************************************************/
  85. typedef struct _MSG_INBAND_SEND_REQUEST
  86. {
  87. U16 Reserved1; /* 00h */
  88. U8 ChainOffset; /* 02h */
  89. U8 Function; /* 03h */
  90. U16 Reserved2; /* 04h */
  91. U8 Reserved3; /* 06h */
  92. U8 MsgFlags; /* 07h */
  93. U32 MsgContext; /* 08h */
  94. U32 Reserved4; /* 0Ch */
  95. WWN_INBAND_FORMAT Wwn; /* 10h */
  96. U32 Reserved5; /* 20h */
  97. SGE_IO_UNION SGL; /* 24h */
  98. } MSG_INBAND_SEND_REQUEST, MPI_POINTER PTR_MSG_INBAND_SEND_REQUEST,
  99. MpiInbandSendRequest_t , MPI_POINTER pMpiInbandSendRequest_t;
  100. /* Inband Send reply message */
  101. typedef struct _MSG_INBAND_SEND_REPLY
  102. {
  103. U16 Reserved1; /* 00h */
  104. U8 MsgLength; /* 02h */
  105. U8 Function; /* 03h */
  106. U16 Reserved2; /* 04h */
  107. U8 Reserved3; /* 06h */
  108. U8 MsgFlags; /* 07h */
  109. U32 MsgContext; /* 08h */
  110. U16 Reserved4; /* 0Ch */
  111. U16 IOCStatus; /* 0Eh */
  112. U32 IOCLogInfo; /* 10h */
  113. U32 ResponseLength; /* 14h */
  114. } MSG_INBAND_SEND_REPLY, MPI_POINTER PTR_MSG_INBAND_SEND_REPLY,
  115. MpiInbandSendReply_t, MPI_POINTER pMpiInbandSendReply_t;
  116. /****************************************************************************/
  117. /* Inband Response Request */
  118. /****************************************************************************/
  119. typedef struct _MSG_INBAND_RSP_REQUEST
  120. {
  121. U16 Reserved1; /* 00h */
  122. U8 ChainOffset; /* 02h */
  123. U8 Function; /* 03h */
  124. U16 Reserved2; /* 04h */
  125. U8 Reserved3; /* 06h */
  126. U8 MsgFlags; /* 07h */
  127. U32 MsgContext; /* 08h */
  128. U32 Reserved4; /* 0Ch */
  129. WWN_INBAND_FORMAT Wwn; /* 10h */
  130. U32 IOCIdentifier[4]; /* 20h */
  131. U32 ResponseLength; /* 30h */
  132. SGE_IO_UNION SGL; /* 34h */
  133. } MSG_INBAND_RSP_REQUEST, MPI_POINTER PTR_MSG_INBAND_RSP_REQUEST,
  134. MpiInbandRspRequest_t , MPI_POINTER pMpiInbandRspRequest_t;
  135. /* Inband Response reply message */
  136. typedef struct _MSG_INBAND_RSP_REPLY
  137. {
  138. U16 Reserved1; /* 00h */
  139. U8 MsgLength; /* 02h */
  140. U8 Function; /* 03h */
  141. U16 Reserved2; /* 04h */
  142. U8 Reserved3; /* 06h */
  143. U8 MsgFlags; /* 07h */
  144. U32 MsgContext; /* 08h */
  145. U16 Reserved4; /* 0Ch */
  146. U16 IOCStatus; /* 0Eh */
  147. U32 IOCLogInfo; /* 10h */
  148. } MSG_INBAND_RSP_REPLY, MPI_POINTER PTR_MSG_INBAND_RSP_REPLY,
  149. MpiInbandRspReply_t, MPI_POINTER pMpiInbandRspReply_t;
  150. /****************************************************************************/
  151. /* Inband Abort Request */
  152. /****************************************************************************/
  153. typedef struct _MSG_INBAND_ABORT_REQUEST
  154. {
  155. U8 Reserved1; /* 00h */
  156. U8 AbortType; /* 01h */
  157. U8 ChainOffset; /* 02h */
  158. U8 Function; /* 03h */
  159. U16 Reserved2; /* 04h */
  160. U8 Reserved3; /* 06h */
  161. U8 MsgFlags; /* 07h */
  162. U32 MsgContext; /* 08h */
  163. U32 Reserved4; /* 0Ch */
  164. U32 ContextToAbort; /* 10h */
  165. } MSG_INBAND_ABORT_REQUEST, MPI_POINTER PTR_MSG_INBAND_ABORT_REQUEST,
  166. MpiInbandAbortRequest_t , MPI_POINTER pMpiInbandAbortRequest_t;
  167. #define MPI_INBAND_ABORT_TYPE_ALL_BUFFERS (0x00)
  168. #define MPI_INBAND_ABORT_TYPE_EXACT_BUFFER (0x01)
  169. #define MPI_INBAND_ABORT_TYPE_SEND_REQUEST (0x02)
  170. #define MPI_INBAND_ABORT_TYPE_RESPONSE_REQUEST (0x03)
  171. /* Inband Abort reply message */
  172. typedef struct _MSG_INBAND_ABORT_REPLY
  173. {
  174. U8 Reserved1; /* 00h */
  175. U8 AbortType; /* 01h */
  176. U8 MsgLength; /* 02h */
  177. U8 Function; /* 03h */
  178. U16 Reserved2; /* 04h */
  179. U8 Reserved3; /* 06h */
  180. U8 MsgFlags; /* 07h */
  181. U32 MsgContext; /* 08h */
  182. U16 Reserved4; /* 0Ch */
  183. U16 IOCStatus; /* 0Eh */
  184. U32 IOCLogInfo; /* 10h */
  185. } MSG_INBAND_ABORT_REPLY, MPI_POINTER PTR_MSG_INBAND_ABORT_REPLY,
  186. MpiInbandAbortReply_t, MPI_POINTER pMpiInbandAbortReply_t;
  187. #endif