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