mpi_inb.h 9.2 KB

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