You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MT23108_PRM_append.h 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. /*
  2. This software is available to you under a choice of one of two
  3. licenses. You may choose to be licensed under the terms of the GNU
  4. General Public License (GPL) Version 2, available at
  5. <http://www.fsf.org/copyleft/gpl.html>, or the OpenIB.org BSD
  6. license, available in the LICENSE.TXT file accompanying this
  7. software. These details are also available at
  8. <http://openib.org/license.html>.
  9. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  10. EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  11. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  12. NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  13. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  14. ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  15. CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  16. SOFTWARE.
  17. Copyright (c) 2004 Mellanox Technologies Ltd. All rights reserved.
  18. */
  19. /***
  20. *** This file was generated at "Tue Nov 16 17:03:53 2004"
  21. *** by:
  22. *** % csp_bf -copyright=/mswg/misc/license-header.txt -bits MT23108_PRM_append.csp
  23. ***/
  24. #ifndef H_bits_MT23108_PRM_append_csp_H
  25. #define H_bits_MT23108_PRM_append_csp_H
  26. /* Gather entry with inline data */
  27. struct wqe_segment_data_inline_st { /* Little Endian */
  28. pseudo_bit_t byte_count[0x0000a]; /* Not including padding for 16Byte chunks */
  29. pseudo_bit_t reserved0[0x00015];
  30. pseudo_bit_t always1[0x00001];
  31. /* -------------- */
  32. pseudo_bit_t data[0x00020]; /* Data may be more this segment size - in 16Byte chunks */
  33. /* -------------- */
  34. };
  35. /* Scatter/Gather entry with a pointer */
  36. struct wqe_segment_data_ptr_st { /* Little Endian */
  37. pseudo_bit_t byte_count[0x0001f];
  38. pseudo_bit_t always0[0x00001];
  39. /* -------------- */
  40. pseudo_bit_t l_key[0x00020];
  41. /* -------------- */
  42. pseudo_bit_t local_address_h[0x00020];
  43. /* -------------- */
  44. pseudo_bit_t local_address_l[0x00020];
  45. /* -------------- */
  46. };
  47. /* */
  48. struct wqe_segment_atomic_st { /* Little Endian */
  49. pseudo_bit_t swap_add_h[0x00020];
  50. /* -------------- */
  51. pseudo_bit_t swap_add_l[0x00020];
  52. /* -------------- */
  53. pseudo_bit_t compare_h[0x00020];
  54. /* -------------- */
  55. pseudo_bit_t compare_l[0x00020];
  56. /* -------------- */
  57. };
  58. /* */
  59. struct wqe_segment_remote_address_st { /* Little Endian */
  60. pseudo_bit_t remote_virt_addr_h[0x00020];
  61. /* -------------- */
  62. pseudo_bit_t remote_virt_addr_l[0x00020];
  63. /* -------------- */
  64. pseudo_bit_t rkey[0x00020];
  65. /* -------------- */
  66. pseudo_bit_t reserved0[0x00020];
  67. /* -------------- */
  68. };
  69. /* Bind memory window segment */
  70. struct wqe_segment_bind_st { /* Little Endian */
  71. pseudo_bit_t reserved0[0x0001d];
  72. pseudo_bit_t rr[0x00001]; /* Remote read */
  73. pseudo_bit_t rw[0x00001]; /* Remote write */
  74. pseudo_bit_t a[0x00001]; /* atomic */
  75. /* -------------- */
  76. pseudo_bit_t reserved1[0x00020];
  77. /* -------------- */
  78. pseudo_bit_t new_rkey[0x00020];
  79. /* -------------- */
  80. pseudo_bit_t region_lkey[0x00020];
  81. /* -------------- */
  82. pseudo_bit_t start_address_h[0x00020];
  83. /* -------------- */
  84. pseudo_bit_t start_address_l[0x00020];
  85. /* -------------- */
  86. pseudo_bit_t length_h[0x00020];
  87. /* -------------- */
  88. pseudo_bit_t length_l[0x00020];
  89. /* -------------- */
  90. };
  91. /* */
  92. struct wqe_segment_ud_st { /* Little Endian */
  93. pseudo_bit_t reserved0[0x00020];
  94. /* -------------- */
  95. pseudo_bit_t l_key[0x00020]; /* memory key for UD AV */
  96. /* -------------- */
  97. pseudo_bit_t av_address_63_32[0x00020];
  98. /* -------------- */
  99. pseudo_bit_t reserved1[0x00005];
  100. pseudo_bit_t av_address_31_5[0x0001b];
  101. /* -------------- */
  102. pseudo_bit_t reserved2[0x00080];
  103. /* -------------- */
  104. pseudo_bit_t destination_qp[0x00018];
  105. pseudo_bit_t reserved3[0x00008];
  106. /* -------------- */
  107. pseudo_bit_t q_key[0x00020];
  108. /* -------------- */
  109. pseudo_bit_t reserved4[0x00040];
  110. /* -------------- */
  111. };
  112. /* */
  113. struct wqe_segment_rd_st { /* Little Endian */
  114. pseudo_bit_t destination_qp[0x00018];
  115. pseudo_bit_t reserved0[0x00008];
  116. /* -------------- */
  117. pseudo_bit_t q_key[0x00020];
  118. /* -------------- */
  119. pseudo_bit_t reserved1[0x00040];
  120. /* -------------- */
  121. };
  122. /* */
  123. struct wqe_segment_ctrl_recv_st { /* Little Endian */
  124. pseudo_bit_t reserved0[0x00002];
  125. pseudo_bit_t e[0x00001]; /* WQE event */
  126. pseudo_bit_t c[0x00001]; /* Create CQE (for "requested signalling" QP) */
  127. pseudo_bit_t reserved1[0x0001c];
  128. /* -------------- */
  129. pseudo_bit_t reserved2[0x00020];
  130. /* -------------- */
  131. };
  132. /* */
  133. struct wqe_segment_ctrl_mlx_st { /* Little Endian */
  134. pseudo_bit_t reserved0[0x00002];
  135. pseudo_bit_t e[0x00001]; /* WQE event */
  136. pseudo_bit_t c[0x00001]; /* Create CQE (for "requested signalling" QP) */
  137. pseudo_bit_t reserved1[0x00004];
  138. pseudo_bit_t sl[0x00004];
  139. pseudo_bit_t max_statrate[0x00003];
  140. pseudo_bit_t reserved2[0x00001];
  141. pseudo_bit_t slr[0x00001]; /* 0= take slid from port. 1= take slid from given headers */
  142. pseudo_bit_t v15[0x00001]; /* Send packet over VL15 */
  143. pseudo_bit_t reserved3[0x0000e];
  144. /* -------------- */
  145. pseudo_bit_t vcrc[0x00010]; /* Packet's VCRC (if not 0 - otherwise computed by HW) */
  146. pseudo_bit_t rlid[0x00010]; /* Destination LID (must match given headers) */
  147. /* -------------- */
  148. };
  149. /* */
  150. struct wqe_segment_ctrl_send_st { /* Little Endian */
  151. pseudo_bit_t always1[0x00001];
  152. pseudo_bit_t s[0x00001]; /* Solicited event */
  153. pseudo_bit_t e[0x00001]; /* WQE event */
  154. pseudo_bit_t c[0x00001]; /* Create CQE (for "requested signalling" QP) */
  155. pseudo_bit_t reserved0[0x0001c];
  156. /* -------------- */
  157. pseudo_bit_t immediate[0x00020];
  158. /* -------------- */
  159. };
  160. /* */
  161. struct wqe_segment_next_st { /* Little Endian */
  162. pseudo_bit_t nopcode[0x00005]; /* next opcode */
  163. pseudo_bit_t reserved0[0x00001];
  164. pseudo_bit_t nda_31_6[0x0001a]; /* NDA[31:6] */
  165. /* -------------- */
  166. pseudo_bit_t nds[0x00006];
  167. pseudo_bit_t f[0x00001]; /* fence bit */
  168. pseudo_bit_t dbd[0x00001]; /* doorbell rung */
  169. pseudo_bit_t nee[0x00018]; /* next EE */
  170. /* -------------- */
  171. };
  172. #endif /* H_bits_MT23108_PRM_append_csp_H */