• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef IB_USER_VERBS_H
20 #define IB_USER_VERBS_H
21 #include <linux/types.h>
22 #define IB_USER_VERBS_ABI_VERSION 6
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #define IB_USER_VERBS_CMD_THRESHOLD 50
25 enum {
26  IB_USER_VERBS_CMD_GET_CONTEXT,
27  IB_USER_VERBS_CMD_QUERY_DEVICE,
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29  IB_USER_VERBS_CMD_QUERY_PORT,
30  IB_USER_VERBS_CMD_ALLOC_PD,
31  IB_USER_VERBS_CMD_DEALLOC_PD,
32  IB_USER_VERBS_CMD_CREATE_AH,
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34  IB_USER_VERBS_CMD_MODIFY_AH,
35  IB_USER_VERBS_CMD_QUERY_AH,
36  IB_USER_VERBS_CMD_DESTROY_AH,
37  IB_USER_VERBS_CMD_REG_MR,
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  IB_USER_VERBS_CMD_REG_SMR,
40  IB_USER_VERBS_CMD_REREG_MR,
41  IB_USER_VERBS_CMD_QUERY_MR,
42  IB_USER_VERBS_CMD_DEREG_MR,
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  IB_USER_VERBS_CMD_ALLOC_MW,
45  IB_USER_VERBS_CMD_BIND_MW,
46  IB_USER_VERBS_CMD_DEALLOC_MW,
47  IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL,
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49  IB_USER_VERBS_CMD_CREATE_CQ,
50  IB_USER_VERBS_CMD_RESIZE_CQ,
51  IB_USER_VERBS_CMD_DESTROY_CQ,
52  IB_USER_VERBS_CMD_POLL_CQ,
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  IB_USER_VERBS_CMD_PEEK_CQ,
55  IB_USER_VERBS_CMD_REQ_NOTIFY_CQ,
56  IB_USER_VERBS_CMD_CREATE_QP,
57  IB_USER_VERBS_CMD_QUERY_QP,
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  IB_USER_VERBS_CMD_MODIFY_QP,
60  IB_USER_VERBS_CMD_DESTROY_QP,
61  IB_USER_VERBS_CMD_POST_SEND,
62  IB_USER_VERBS_CMD_POST_RECV,
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  IB_USER_VERBS_CMD_ATTACH_MCAST,
65  IB_USER_VERBS_CMD_DETACH_MCAST,
66  IB_USER_VERBS_CMD_CREATE_SRQ,
67  IB_USER_VERBS_CMD_MODIFY_SRQ,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  IB_USER_VERBS_CMD_QUERY_SRQ,
70  IB_USER_VERBS_CMD_DESTROY_SRQ,
71  IB_USER_VERBS_CMD_POST_SRQ_RECV,
72  IB_USER_VERBS_CMD_OPEN_XRCD,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  IB_USER_VERBS_CMD_CLOSE_XRCD,
75  IB_USER_VERBS_CMD_CREATE_XSRQ,
76  IB_USER_VERBS_CMD_OPEN_QP,
77 };
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 enum {
80  IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
81  IB_USER_VERBS_EX_CMD_DESTROY_FLOW
82 };
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 struct ib_uverbs_async_event_desc {
85  __u64 element;
86  __u32 event_type;
87  __u32 reserved;
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 };
90 struct ib_uverbs_comp_event_desc {
91  __u64 cq_handle;
92 };
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 #define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
95 #define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u
96 #define IB_USER_VERBS_CMD_FLAGS_SHIFT 24
97 #define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 struct ib_uverbs_cmd_hdr {
100  __u32 command;
101  __u16 in_words;
102  __u16 out_words;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 };
105 struct ib_uverbs_ex_cmd_hdr {
106  __u64 response;
107  __u16 provider_in_words;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  __u16 provider_out_words;
110  __u32 cmd_hdr_reserved;
111 };
112 struct ib_uverbs_get_context {
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  __u64 response;
115  __u64 driver_data[0];
116 };
117 struct ib_uverbs_get_context_resp {
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  __u32 async_fd;
120  __u32 num_comp_vectors;
121 };
122 struct ib_uverbs_query_device {
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  __u64 response;
125  __u64 driver_data[0];
126 };
127 struct ib_uverbs_query_device_resp {
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  __u64 fw_ver;
130  __be64 node_guid;
131  __be64 sys_image_guid;
132  __u64 max_mr_size;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  __u64 page_size_cap;
135  __u32 vendor_id;
136  __u32 vendor_part_id;
137  __u32 hw_ver;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  __u32 max_qp;
140  __u32 max_qp_wr;
141  __u32 device_cap_flags;
142  __u32 max_sge;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  __u32 max_sge_rd;
145  __u32 max_cq;
146  __u32 max_cqe;
147  __u32 max_mr;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  __u32 max_pd;
150  __u32 max_qp_rd_atom;
151  __u32 max_ee_rd_atom;
152  __u32 max_res_rd_atom;
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  __u32 max_qp_init_rd_atom;
155  __u32 max_ee_init_rd_atom;
156  __u32 atomic_cap;
157  __u32 max_ee;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159  __u32 max_rdd;
160  __u32 max_mw;
161  __u32 max_raw_ipv6_qp;
162  __u32 max_raw_ethy_qp;
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  __u32 max_mcast_grp;
165  __u32 max_mcast_qp_attach;
166  __u32 max_total_mcast_qp_attach;
167  __u32 max_ah;
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  __u32 max_fmr;
170  __u32 max_map_per_fmr;
171  __u32 max_srq;
172  __u32 max_srq_wr;
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  __u32 max_srq_sge;
175  __u16 max_pkeys;
176  __u8 local_ca_ack_delay;
177  __u8 phys_port_cnt;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  __u8 reserved[4];
180 };
181 struct ib_uverbs_query_port {
182  __u64 response;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  __u8 port_num;
185  __u8 reserved[7];
186  __u64 driver_data[0];
187 };
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189 struct ib_uverbs_query_port_resp {
190  __u32 port_cap_flags;
191  __u32 max_msg_sz;
192  __u32 bad_pkey_cntr;
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  __u32 qkey_viol_cntr;
195  __u32 gid_tbl_len;
196  __u16 pkey_tbl_len;
197  __u16 lid;
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  __u16 sm_lid;
200  __u8 state;
201  __u8 max_mtu;
202  __u8 active_mtu;
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  __u8 lmc;
205  __u8 max_vl_num;
206  __u8 sm_sl;
207  __u8 subnet_timeout;
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  __u8 init_type_reply;
210  __u8 active_width;
211  __u8 active_speed;
212  __u8 phys_state;
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  __u8 link_layer;
215  __u8 reserved[2];
216 };
217 struct ib_uverbs_alloc_pd {
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219  __u64 response;
220  __u64 driver_data[0];
221 };
222 struct ib_uverbs_alloc_pd_resp {
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224  __u32 pd_handle;
225 };
226 struct ib_uverbs_dealloc_pd {
227  __u32 pd_handle;
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 };
230 struct ib_uverbs_open_xrcd {
231  __u64 response;
232  __u32 fd;
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  __u32 oflags;
235  __u64 driver_data[0];
236 };
237 struct ib_uverbs_open_xrcd_resp {
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239  __u32 xrcd_handle;
240 };
241 struct ib_uverbs_close_xrcd {
242  __u32 xrcd_handle;
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 };
245 struct ib_uverbs_reg_mr {
246  __u64 response;
247  __u64 start;
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249  __u64 length;
250  __u64 hca_va;
251  __u32 pd_handle;
252  __u32 access_flags;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  __u64 driver_data[0];
255 };
256 struct ib_uverbs_reg_mr_resp {
257  __u32 mr_handle;
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259  __u32 lkey;
260  __u32 rkey;
261 };
262 struct ib_uverbs_dereg_mr {
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264  __u32 mr_handle;
265 };
266 struct ib_uverbs_alloc_mw {
267  __u64 response;
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  __u32 pd_handle;
270  __u8 mw_type;
271  __u8 reserved[3];
272 };
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 struct ib_uverbs_alloc_mw_resp {
275  __u32 mw_handle;
276  __u32 rkey;
277 };
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 struct ib_uverbs_dealloc_mw {
280  __u32 mw_handle;
281 };
282 struct ib_uverbs_create_comp_channel {
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284  __u64 response;
285 };
286 struct ib_uverbs_create_comp_channel_resp {
287  __u32 fd;
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 };
290 struct ib_uverbs_create_cq {
291  __u64 response;
292  __u64 user_handle;
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294  __u32 cqe;
295  __u32 comp_vector;
296  __s32 comp_channel;
297  __u32 reserved;
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299  __u64 driver_data[0];
300 };
301 struct ib_uverbs_create_cq_resp {
302  __u32 cq_handle;
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304  __u32 cqe;
305 };
306 struct ib_uverbs_resize_cq {
307  __u64 response;
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309  __u32 cq_handle;
310  __u32 cqe;
311  __u64 driver_data[0];
312 };
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 struct ib_uverbs_resize_cq_resp {
315  __u32 cqe;
316  __u32 reserved;
317  __u64 driver_data[0];
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319 };
320 struct ib_uverbs_poll_cq {
321  __u64 response;
322  __u32 cq_handle;
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  __u32 ne;
325 };
326 struct ib_uverbs_wc {
327  __u64 wr_id;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329  __u32 status;
330  __u32 opcode;
331  __u32 vendor_err;
332  __u32 byte_len;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334  union {
335  __u32 imm_data;
336  __u32 invalidate_rkey;
337  } ex;
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  __u32 qp_num;
340  __u32 src_qp;
341  __u32 wc_flags;
342  __u16 pkey_index;
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  __u16 slid;
345  __u8 sl;
346  __u8 dlid_path_bits;
347  __u8 port_num;
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  __u8 reserved;
350 };
351 struct ib_uverbs_poll_cq_resp {
352  __u32 count;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  __u32 reserved;
355  struct ib_uverbs_wc wc[0];
356 };
357 struct ib_uverbs_req_notify_cq {
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359  __u32 cq_handle;
360  __u32 solicited_only;
361 };
362 struct ib_uverbs_destroy_cq {
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  __u64 response;
365  __u32 cq_handle;
366  __u32 reserved;
367 };
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 struct ib_uverbs_destroy_cq_resp {
370  __u32 comp_events_reported;
371  __u32 async_events_reported;
372 };
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374 struct ib_uverbs_global_route {
375  __u8 dgid[16];
376  __u32 flow_label;
377  __u8 sgid_index;
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379  __u8 hop_limit;
380  __u8 traffic_class;
381  __u8 reserved;
382 };
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 struct ib_uverbs_ah_attr {
385  struct ib_uverbs_global_route grh;
386  __u16 dlid;
387  __u8 sl;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389  __u8 src_path_bits;
390  __u8 static_rate;
391  __u8 is_global;
392  __u8 port_num;
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394  __u8 reserved;
395 };
396 struct ib_uverbs_qp_attr {
397  __u32 qp_attr_mask;
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399  __u32 qp_state;
400  __u32 cur_qp_state;
401  __u32 path_mtu;
402  __u32 path_mig_state;
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  __u32 qkey;
405  __u32 rq_psn;
406  __u32 sq_psn;
407  __u32 dest_qp_num;
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  __u32 qp_access_flags;
410  struct ib_uverbs_ah_attr ah_attr;
411  struct ib_uverbs_ah_attr alt_ah_attr;
412  __u32 max_send_wr;
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414  __u32 max_recv_wr;
415  __u32 max_send_sge;
416  __u32 max_recv_sge;
417  __u32 max_inline_data;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  __u16 pkey_index;
420  __u16 alt_pkey_index;
421  __u8 en_sqd_async_notify;
422  __u8 sq_draining;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  __u8 max_rd_atomic;
425  __u8 max_dest_rd_atomic;
426  __u8 min_rnr_timer;
427  __u8 port_num;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  __u8 timeout;
430  __u8 retry_cnt;
431  __u8 rnr_retry;
432  __u8 alt_port_num;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  __u8 alt_timeout;
435  __u8 reserved[5];
436 };
437 struct ib_uverbs_create_qp {
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  __u64 response;
440  __u64 user_handle;
441  __u32 pd_handle;
442  __u32 send_cq_handle;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  __u32 recv_cq_handle;
445  __u32 srq_handle;
446  __u32 max_send_wr;
447  __u32 max_recv_wr;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  __u32 max_send_sge;
450  __u32 max_recv_sge;
451  __u32 max_inline_data;
452  __u8 sq_sig_all;
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  __u8 qp_type;
455  __u8 is_srq;
456  __u8 reserved;
457  __u64 driver_data[0];
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 };
460 struct ib_uverbs_open_qp {
461  __u64 response;
462  __u64 user_handle;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  __u32 pd_handle;
465  __u32 qpn;
466  __u8 qp_type;
467  __u8 reserved[7];
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  __u64 driver_data[0];
470 };
471 struct ib_uverbs_create_qp_resp {
472  __u32 qp_handle;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  __u32 qpn;
475  __u32 max_send_wr;
476  __u32 max_recv_wr;
477  __u32 max_send_sge;
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  __u32 max_recv_sge;
480  __u32 max_inline_data;
481  __u32 reserved;
482 };
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484 struct ib_uverbs_qp_dest {
485  __u8 dgid[16];
486  __u32 flow_label;
487  __u16 dlid;
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  __u16 reserved;
490  __u8 sgid_index;
491  __u8 hop_limit;
492  __u8 traffic_class;
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494  __u8 sl;
495  __u8 src_path_bits;
496  __u8 static_rate;
497  __u8 is_global;
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  __u8 port_num;
500 };
501 struct ib_uverbs_query_qp {
502  __u64 response;
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504  __u32 qp_handle;
505  __u32 attr_mask;
506  __u64 driver_data[0];
507 };
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 struct ib_uverbs_query_qp_resp {
510  struct ib_uverbs_qp_dest dest;
511  struct ib_uverbs_qp_dest alt_dest;
512  __u32 max_send_wr;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514  __u32 max_recv_wr;
515  __u32 max_send_sge;
516  __u32 max_recv_sge;
517  __u32 max_inline_data;
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519  __u32 qkey;
520  __u32 rq_psn;
521  __u32 sq_psn;
522  __u32 dest_qp_num;
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524  __u32 qp_access_flags;
525  __u16 pkey_index;
526  __u16 alt_pkey_index;
527  __u8 qp_state;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529  __u8 cur_qp_state;
530  __u8 path_mtu;
531  __u8 path_mig_state;
532  __u8 sq_draining;
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534  __u8 max_rd_atomic;
535  __u8 max_dest_rd_atomic;
536  __u8 min_rnr_timer;
537  __u8 port_num;
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539  __u8 timeout;
540  __u8 retry_cnt;
541  __u8 rnr_retry;
542  __u8 alt_port_num;
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544  __u8 alt_timeout;
545  __u8 sq_sig_all;
546  __u8 reserved[5];
547  __u64 driver_data[0];
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549 };
550 struct ib_uverbs_modify_qp {
551  struct ib_uverbs_qp_dest dest;
552  struct ib_uverbs_qp_dest alt_dest;
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554  __u32 qp_handle;
555  __u32 attr_mask;
556  __u32 qkey;
557  __u32 rq_psn;
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559  __u32 sq_psn;
560  __u32 dest_qp_num;
561  __u32 qp_access_flags;
562  __u16 pkey_index;
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564  __u16 alt_pkey_index;
565  __u8 qp_state;
566  __u8 cur_qp_state;
567  __u8 path_mtu;
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569  __u8 path_mig_state;
570  __u8 en_sqd_async_notify;
571  __u8 max_rd_atomic;
572  __u8 max_dest_rd_atomic;
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574  __u8 min_rnr_timer;
575  __u8 port_num;
576  __u8 timeout;
577  __u8 retry_cnt;
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579  __u8 rnr_retry;
580  __u8 alt_port_num;
581  __u8 alt_timeout;
582  __u8 reserved[2];
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584  __u64 driver_data[0];
585 };
586 struct ib_uverbs_modify_qp_resp {
587 };
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589 struct ib_uverbs_destroy_qp {
590  __u64 response;
591  __u32 qp_handle;
592  __u32 reserved;
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594 };
595 struct ib_uverbs_destroy_qp_resp {
596  __u32 events_reported;
597 };
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599 struct ib_uverbs_sge {
600  __u64 addr;
601  __u32 length;
602  __u32 lkey;
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604 };
605 struct ib_uverbs_send_wr {
606  __u64 wr_id;
607  __u32 num_sge;
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609  __u32 opcode;
610  __u32 send_flags;
611  union {
612  __u32 imm_data;
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614  __u32 invalidate_rkey;
615  } ex;
616  union {
617  struct {
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619  __u64 remote_addr;
620  __u32 rkey;
621  __u32 reserved;
622  } rdma;
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624  struct {
625  __u64 remote_addr;
626  __u64 compare_add;
627  __u64 swap;
628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629  __u32 rkey;
630  __u32 reserved;
631  } atomic;
632  struct {
633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634  __u32 ah;
635  __u32 remote_qpn;
636  __u32 remote_qkey;
637  __u32 reserved;
638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639  } ud;
640  } wr;
641 };
642 struct ib_uverbs_post_send {
643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644  __u64 response;
645  __u32 qp_handle;
646  __u32 wr_count;
647  __u32 sge_count;
648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649  __u32 wqe_size;
650  struct ib_uverbs_send_wr send_wr[0];
651 };
652 struct ib_uverbs_post_send_resp {
653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654  __u32 bad_wr;
655 };
656 struct ib_uverbs_recv_wr {
657  __u64 wr_id;
658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659  __u32 num_sge;
660  __u32 reserved;
661 };
662 struct ib_uverbs_post_recv {
663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664  __u64 response;
665  __u32 qp_handle;
666  __u32 wr_count;
667  __u32 sge_count;
668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669  __u32 wqe_size;
670  struct ib_uverbs_recv_wr recv_wr[0];
671 };
672 struct ib_uverbs_post_recv_resp {
673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674  __u32 bad_wr;
675 };
676 struct ib_uverbs_post_srq_recv {
677  __u64 response;
678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679  __u32 srq_handle;
680  __u32 wr_count;
681  __u32 sge_count;
682  __u32 wqe_size;
683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684  struct ib_uverbs_recv_wr recv[0];
685 };
686 struct ib_uverbs_post_srq_recv_resp {
687  __u32 bad_wr;
688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689 };
690 struct ib_uverbs_create_ah {
691  __u64 response;
692  __u64 user_handle;
693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694  __u32 pd_handle;
695  __u32 reserved;
696  struct ib_uverbs_ah_attr attr;
697 };
698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699 struct ib_uverbs_create_ah_resp {
700  __u32 ah_handle;
701 };
702 struct ib_uverbs_destroy_ah {
703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704  __u32 ah_handle;
705 };
706 struct ib_uverbs_attach_mcast {
707  __u8 gid[16];
708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709  __u32 qp_handle;
710  __u16 mlid;
711  __u16 reserved;
712  __u64 driver_data[0];
713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714 };
715 struct ib_uverbs_detach_mcast {
716  __u8 gid[16];
717  __u32 qp_handle;
718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719  __u16 mlid;
720  __u16 reserved;
721  __u64 driver_data[0];
722 };
723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724 struct ib_uverbs_flow_spec_hdr {
725  __u32 type;
726  __u16 size;
727  __u16 reserved;
728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729  __u64 flow_spec_data[0];
730 };
731 struct ib_uverbs_flow_eth_filter {
732  __u8 dst_mac[6];
733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734  __u8 src_mac[6];
735  __be16 ether_type;
736  __be16 vlan_tag;
737 };
738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739 struct ib_uverbs_flow_spec_eth {
740  union {
741  struct ib_uverbs_flow_spec_hdr hdr;
742  struct {
743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744  __u32 type;
745  __u16 size;
746  __u16 reserved;
747  };
748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749  };
750  struct ib_uverbs_flow_eth_filter val;
751  struct ib_uverbs_flow_eth_filter mask;
752 };
753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
754 struct ib_uverbs_flow_ipv4_filter {
755  __be32 src_ip;
756  __be32 dst_ip;
757 };
758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
759 struct ib_uverbs_flow_spec_ipv4 {
760  union {
761  struct ib_uverbs_flow_spec_hdr hdr;
762  struct {
763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
764  __u32 type;
765  __u16 size;
766  __u16 reserved;
767  };
768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
769  };
770  struct ib_uverbs_flow_ipv4_filter val;
771  struct ib_uverbs_flow_ipv4_filter mask;
772 };
773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
774 struct ib_uverbs_flow_tcp_udp_filter {
775  __be16 dst_port;
776  __be16 src_port;
777 };
778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
779 struct ib_uverbs_flow_spec_tcp_udp {
780  union {
781  struct ib_uverbs_flow_spec_hdr hdr;
782  struct {
783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
784  __u32 type;
785  __u16 size;
786  __u16 reserved;
787  };
788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
789  };
790  struct ib_uverbs_flow_tcp_udp_filter val;
791  struct ib_uverbs_flow_tcp_udp_filter mask;
792 };
793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794 struct ib_uverbs_flow_attr {
795  __u32 type;
796  __u16 size;
797  __u16 priority;
798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
799  __u8 num_of_specs;
800  __u8 reserved[2];
801  __u8 port;
802  __u32 flags;
803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
804  struct ib_uverbs_flow_spec_hdr flow_specs[0];
805 };
806 struct ib_uverbs_create_flow {
807  __u32 comp_mask;
808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
809  __u32 qp_handle;
810  struct ib_uverbs_flow_attr flow_attr;
811 };
812 struct ib_uverbs_create_flow_resp {
813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
814  __u32 comp_mask;
815  __u32 flow_handle;
816 };
817 struct ib_uverbs_destroy_flow {
818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
819  __u32 comp_mask;
820  __u32 flow_handle;
821 };
822 struct ib_uverbs_create_srq {
823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
824  __u64 response;
825  __u64 user_handle;
826  __u32 pd_handle;
827  __u32 max_wr;
828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
829  __u32 max_sge;
830  __u32 srq_limit;
831  __u64 driver_data[0];
832 };
833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
834 struct ib_uverbs_create_xsrq {
835  __u64 response;
836  __u64 user_handle;
837  __u32 srq_type;
838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
839  __u32 pd_handle;
840  __u32 max_wr;
841  __u32 max_sge;
842  __u32 srq_limit;
843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844  __u32 reserved;
845  __u32 xrcd_handle;
846  __u32 cq_handle;
847  __u64 driver_data[0];
848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
849 };
850 struct ib_uverbs_create_srq_resp {
851  __u32 srq_handle;
852  __u32 max_wr;
853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
854  __u32 max_sge;
855  __u32 srqn;
856 };
857 struct ib_uverbs_modify_srq {
858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
859  __u32 srq_handle;
860  __u32 attr_mask;
861  __u32 max_wr;
862  __u32 srq_limit;
863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
864  __u64 driver_data[0];
865 };
866 struct ib_uverbs_query_srq {
867  __u64 response;
868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
869  __u32 srq_handle;
870  __u32 reserved;
871  __u64 driver_data[0];
872 };
873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
874 struct ib_uverbs_query_srq_resp {
875  __u32 max_wr;
876  __u32 max_sge;
877  __u32 srq_limit;
878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
879  __u32 reserved;
880 };
881 struct ib_uverbs_destroy_srq {
882  __u64 response;
883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
884  __u32 srq_handle;
885  __u32 reserved;
886 };
887 struct ib_uverbs_destroy_srq_resp {
888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
889  __u32 events_reported;
890 };
891 #endif
892