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_QUERY_DEVICE = IB_USER_VERBS_CMD_QUERY_DEVICE,
81   IB_USER_VERBS_EX_CMD_CREATE_CQ = IB_USER_VERBS_CMD_CREATE_CQ,
82   IB_USER_VERBS_EX_CMD_CREATE_QP = IB_USER_VERBS_CMD_CREATE_QP,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84   IB_USER_VERBS_EX_CMD_MODIFY_QP = IB_USER_VERBS_CMD_MODIFY_QP,
85   IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
86   IB_USER_VERBS_EX_CMD_DESTROY_FLOW,
87   IB_USER_VERBS_EX_CMD_CREATE_WQ,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89   IB_USER_VERBS_EX_CMD_MODIFY_WQ,
90   IB_USER_VERBS_EX_CMD_DESTROY_WQ,
91   IB_USER_VERBS_EX_CMD_CREATE_RWQ_IND_TBL,
92   IB_USER_VERBS_EX_CMD_DESTROY_RWQ_IND_TBL
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 };
95 struct ib_uverbs_async_event_desc {
96   __u64 element;
97   __u32 event_type;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99   __u32 reserved;
100 };
101 struct ib_uverbs_comp_event_desc {
102   __u64 cq_handle;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 };
105 #define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
106 #define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u
107 #define IB_USER_VERBS_CMD_FLAGS_SHIFT 24
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 #define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80
110 struct ib_uverbs_cmd_hdr {
111   __u32 command;
112   __u16 in_words;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   __u16 out_words;
115 };
116 struct ib_uverbs_ex_cmd_hdr {
117   __u64 response;
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119   __u16 provider_in_words;
120   __u16 provider_out_words;
121   __u32 cmd_hdr_reserved;
122 };
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 struct ib_uverbs_get_context {
125   __u64 response;
126   __u64 driver_data[0];
127 };
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 struct ib_uverbs_get_context_resp {
130   __u32 async_fd;
131   __u32 num_comp_vectors;
132 };
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 struct ib_uverbs_query_device {
135   __u64 response;
136   __u64 driver_data[0];
137 };
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 struct ib_uverbs_query_device_resp {
140   __u64 fw_ver;
141   __be64 node_guid;
142   __be64 sys_image_guid;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   __u64 max_mr_size;
145   __u64 page_size_cap;
146   __u32 vendor_id;
147   __u32 vendor_part_id;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   __u32 hw_ver;
150   __u32 max_qp;
151   __u32 max_qp_wr;
152   __u32 device_cap_flags;
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   __u32 max_sge;
155   __u32 max_sge_rd;
156   __u32 max_cq;
157   __u32 max_cqe;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   __u32 max_mr;
160   __u32 max_pd;
161   __u32 max_qp_rd_atom;
162   __u32 max_ee_rd_atom;
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   __u32 max_res_rd_atom;
165   __u32 max_qp_init_rd_atom;
166   __u32 max_ee_init_rd_atom;
167   __u32 atomic_cap;
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   __u32 max_ee;
170   __u32 max_rdd;
171   __u32 max_mw;
172   __u32 max_raw_ipv6_qp;
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174   __u32 max_raw_ethy_qp;
175   __u32 max_mcast_grp;
176   __u32 max_mcast_qp_attach;
177   __u32 max_total_mcast_qp_attach;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   __u32 max_ah;
180   __u32 max_fmr;
181   __u32 max_map_per_fmr;
182   __u32 max_srq;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   __u32 max_srq_wr;
185   __u32 max_srq_sge;
186   __u16 max_pkeys;
187   __u8 local_ca_ack_delay;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   __u8 phys_port_cnt;
190   __u8 reserved[4];
191 };
192 struct ib_uverbs_ex_query_device {
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   __u32 comp_mask;
195   __u32 reserved;
196 };
197 struct ib_uverbs_odp_caps {
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   __u64 general_caps;
200   struct {
201     __u32 rc_odp_caps;
202     __u32 uc_odp_caps;
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204     __u32 ud_odp_caps;
205   } per_transport_caps;
206   __u32 reserved;
207 };
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 struct ib_uverbs_rss_caps {
210   __u32 supported_qpts;
211   __u32 max_rwq_indirection_tables;
212   __u32 max_rwq_indirection_table_size;
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214   __u32 reserved;
215 };
216 struct ib_uverbs_ex_query_device_resp {
217   struct ib_uverbs_query_device_resp base;
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219   __u32 comp_mask;
220   __u32 response_length;
221   struct ib_uverbs_odp_caps odp_caps;
222   __u64 timestamp_mask;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224   __u64 hca_core_clock;
225   __u64 device_cap_flags_ex;
226   struct ib_uverbs_rss_caps rss_caps;
227   __u32 max_wq_type_rq;
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229   __u32 reserved;
230 };
231 struct ib_uverbs_query_port {
232   __u64 response;
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   __u8 port_num;
235   __u8 reserved[7];
236   __u64 driver_data[0];
237 };
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 struct ib_uverbs_query_port_resp {
240   __u32 port_cap_flags;
241   __u32 max_msg_sz;
242   __u32 bad_pkey_cntr;
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244   __u32 qkey_viol_cntr;
245   __u32 gid_tbl_len;
246   __u16 pkey_tbl_len;
247   __u16 lid;
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   __u16 sm_lid;
250   __u8 state;
251   __u8 max_mtu;
252   __u8 active_mtu;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   __u8 lmc;
255   __u8 max_vl_num;
256   __u8 sm_sl;
257   __u8 subnet_timeout;
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   __u8 init_type_reply;
260   __u8 active_width;
261   __u8 active_speed;
262   __u8 phys_state;
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   __u8 link_layer;
265   __u8 reserved[2];
266 };
267 struct ib_uverbs_alloc_pd {
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   __u64 response;
270   __u64 driver_data[0];
271 };
272 struct ib_uverbs_alloc_pd_resp {
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   __u32 pd_handle;
275 };
276 struct ib_uverbs_dealloc_pd {
277   __u32 pd_handle;
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 };
280 struct ib_uverbs_open_xrcd {
281   __u64 response;
282   __u32 fd;
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284   __u32 oflags;
285   __u64 driver_data[0];
286 };
287 struct ib_uverbs_open_xrcd_resp {
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289   __u32 xrcd_handle;
290 };
291 struct ib_uverbs_close_xrcd {
292   __u32 xrcd_handle;
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 };
295 struct ib_uverbs_reg_mr {
296   __u64 response;
297   __u64 start;
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299   __u64 length;
300   __u64 hca_va;
301   __u32 pd_handle;
302   __u32 access_flags;
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304   __u64 driver_data[0];
305 };
306 struct ib_uverbs_reg_mr_resp {
307   __u32 mr_handle;
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309   __u32 lkey;
310   __u32 rkey;
311 };
312 struct ib_uverbs_rereg_mr {
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314   __u64 response;
315   __u32 mr_handle;
316   __u32 flags;
317   __u64 start;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   __u64 length;
320   __u64 hca_va;
321   __u32 pd_handle;
322   __u32 access_flags;
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 };
325 struct ib_uverbs_rereg_mr_resp {
326   __u32 lkey;
327   __u32 rkey;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 };
330 struct ib_uverbs_dereg_mr {
331   __u32 mr_handle;
332 };
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334 struct ib_uverbs_alloc_mw {
335   __u64 response;
336   __u32 pd_handle;
337   __u8 mw_type;
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   __u8 reserved[3];
340 };
341 struct ib_uverbs_alloc_mw_resp {
342   __u32 mw_handle;
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344   __u32 rkey;
345 };
346 struct ib_uverbs_dealloc_mw {
347   __u32 mw_handle;
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349 };
350 struct ib_uverbs_create_comp_channel {
351   __u64 response;
352 };
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354 struct ib_uverbs_create_comp_channel_resp {
355   __u32 fd;
356 };
357 struct ib_uverbs_create_cq {
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   __u64 response;
360   __u64 user_handle;
361   __u32 cqe;
362   __u32 comp_vector;
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   __s32 comp_channel;
365   __u32 reserved;
366   __u64 driver_data[0];
367 };
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 struct ib_uverbs_ex_create_cq {
370   __u64 user_handle;
371   __u32 cqe;
372   __u32 comp_vector;
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374   __s32 comp_channel;
375   __u32 comp_mask;
376   __u32 flags;
377   __u32 reserved;
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 };
380 struct ib_uverbs_create_cq_resp {
381   __u32 cq_handle;
382   __u32 cqe;
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 };
385 struct ib_uverbs_ex_create_cq_resp {
386   struct ib_uverbs_create_cq_resp base;
387   __u32 comp_mask;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389   __u32 response_length;
390 };
391 struct ib_uverbs_resize_cq {
392   __u64 response;
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394   __u32 cq_handle;
395   __u32 cqe;
396   __u64 driver_data[0];
397 };
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399 struct ib_uverbs_resize_cq_resp {
400   __u32 cqe;
401   __u32 reserved;
402   __u64 driver_data[0];
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404 };
405 struct ib_uverbs_poll_cq {
406   __u64 response;
407   __u32 cq_handle;
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409   __u32 ne;
410 };
411 struct ib_uverbs_wc {
412   __u64 wr_id;
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414   __u32 status;
415   __u32 opcode;
416   __u32 vendor_err;
417   __u32 byte_len;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419   union {
420     __u32 imm_data;
421     __u32 invalidate_rkey;
422   } ex;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424   __u32 qp_num;
425   __u32 src_qp;
426   __u32 wc_flags;
427   __u16 pkey_index;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429   __u16 slid;
430   __u8 sl;
431   __u8 dlid_path_bits;
432   __u8 port_num;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   __u8 reserved;
435 };
436 struct ib_uverbs_poll_cq_resp {
437   __u32 count;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   __u32 reserved;
440   struct ib_uverbs_wc wc[0];
441 };
442 struct ib_uverbs_req_notify_cq {
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   __u32 cq_handle;
445   __u32 solicited_only;
446 };
447 struct ib_uverbs_destroy_cq {
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   __u64 response;
450   __u32 cq_handle;
451   __u32 reserved;
452 };
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 struct ib_uverbs_destroy_cq_resp {
455   __u32 comp_events_reported;
456   __u32 async_events_reported;
457 };
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 struct ib_uverbs_global_route {
460   __u8 dgid[16];
461   __u32 flow_label;
462   __u8 sgid_index;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   __u8 hop_limit;
465   __u8 traffic_class;
466   __u8 reserved;
467 };
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469 struct ib_uverbs_ah_attr {
470   struct ib_uverbs_global_route grh;
471   __u16 dlid;
472   __u8 sl;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474   __u8 src_path_bits;
475   __u8 static_rate;
476   __u8 is_global;
477   __u8 port_num;
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   __u8 reserved;
480 };
481 struct ib_uverbs_qp_attr {
482   __u32 qp_attr_mask;
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484   __u32 qp_state;
485   __u32 cur_qp_state;
486   __u32 path_mtu;
487   __u32 path_mig_state;
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489   __u32 qkey;
490   __u32 rq_psn;
491   __u32 sq_psn;
492   __u32 dest_qp_num;
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494   __u32 qp_access_flags;
495   struct ib_uverbs_ah_attr ah_attr;
496   struct ib_uverbs_ah_attr alt_ah_attr;
497   __u32 max_send_wr;
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499   __u32 max_recv_wr;
500   __u32 max_send_sge;
501   __u32 max_recv_sge;
502   __u32 max_inline_data;
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504   __u16 pkey_index;
505   __u16 alt_pkey_index;
506   __u8 en_sqd_async_notify;
507   __u8 sq_draining;
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509   __u8 max_rd_atomic;
510   __u8 max_dest_rd_atomic;
511   __u8 min_rnr_timer;
512   __u8 port_num;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514   __u8 timeout;
515   __u8 retry_cnt;
516   __u8 rnr_retry;
517   __u8 alt_port_num;
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519   __u8 alt_timeout;
520   __u8 reserved[5];
521 };
522 struct ib_uverbs_create_qp {
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524   __u64 response;
525   __u64 user_handle;
526   __u32 pd_handle;
527   __u32 send_cq_handle;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529   __u32 recv_cq_handle;
530   __u32 srq_handle;
531   __u32 max_send_wr;
532   __u32 max_recv_wr;
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534   __u32 max_send_sge;
535   __u32 max_recv_sge;
536   __u32 max_inline_data;
537   __u8 sq_sig_all;
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539   __u8 qp_type;
540   __u8 is_srq;
541   __u8 reserved;
542   __u64 driver_data[0];
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544 };
545 enum ib_uverbs_create_qp_mask {
546   IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1UL << 0,
547 };
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549 enum {
550   IB_UVERBS_CREATE_QP_SUP_COMP_MASK = IB_UVERBS_CREATE_QP_MASK_IND_TABLE,
551 };
552 enum {
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554   IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20,
555 };
556 enum {
557   IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559 };
560 struct ib_uverbs_ex_create_qp {
561   __u64 user_handle;
562   __u32 pd_handle;
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564   __u32 send_cq_handle;
565   __u32 recv_cq_handle;
566   __u32 srq_handle;
567   __u32 max_send_wr;
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569   __u32 max_recv_wr;
570   __u32 max_send_sge;
571   __u32 max_recv_sge;
572   __u32 max_inline_data;
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574   __u8 sq_sig_all;
575   __u8 qp_type;
576   __u8 is_srq;
577   __u8 reserved;
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579   __u32 comp_mask;
580   __u32 create_flags;
581   __u32 rwq_ind_tbl_handle;
582   __u32 reserved1;
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584 };
585 struct ib_uverbs_open_qp {
586   __u64 response;
587   __u64 user_handle;
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589   __u32 pd_handle;
590   __u32 qpn;
591   __u8 qp_type;
592   __u8 reserved[7];
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594   __u64 driver_data[0];
595 };
596 struct ib_uverbs_create_qp_resp {
597   __u32 qp_handle;
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599   __u32 qpn;
600   __u32 max_send_wr;
601   __u32 max_recv_wr;
602   __u32 max_send_sge;
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604   __u32 max_recv_sge;
605   __u32 max_inline_data;
606   __u32 reserved;
607 };
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609 struct ib_uverbs_ex_create_qp_resp {
610   struct ib_uverbs_create_qp_resp base;
611   __u32 comp_mask;
612   __u32 response_length;
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614 };
615 struct ib_uverbs_qp_dest {
616   __u8 dgid[16];
617   __u32 flow_label;
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619   __u16 dlid;
620   __u16 reserved;
621   __u8 sgid_index;
622   __u8 hop_limit;
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624   __u8 traffic_class;
625   __u8 sl;
626   __u8 src_path_bits;
627   __u8 static_rate;
628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629   __u8 is_global;
630   __u8 port_num;
631 };
632 struct ib_uverbs_query_qp {
633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634   __u64 response;
635   __u32 qp_handle;
636   __u32 attr_mask;
637   __u64 driver_data[0];
638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639 };
640 struct ib_uverbs_query_qp_resp {
641   struct ib_uverbs_qp_dest dest;
642   struct ib_uverbs_qp_dest alt_dest;
643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644   __u32 max_send_wr;
645   __u32 max_recv_wr;
646   __u32 max_send_sge;
647   __u32 max_recv_sge;
648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649   __u32 max_inline_data;
650   __u32 qkey;
651   __u32 rq_psn;
652   __u32 sq_psn;
653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654   __u32 dest_qp_num;
655   __u32 qp_access_flags;
656   __u16 pkey_index;
657   __u16 alt_pkey_index;
658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659   __u8 qp_state;
660   __u8 cur_qp_state;
661   __u8 path_mtu;
662   __u8 path_mig_state;
663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664   __u8 sq_draining;
665   __u8 max_rd_atomic;
666   __u8 max_dest_rd_atomic;
667   __u8 min_rnr_timer;
668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669   __u8 port_num;
670   __u8 timeout;
671   __u8 retry_cnt;
672   __u8 rnr_retry;
673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674   __u8 alt_port_num;
675   __u8 alt_timeout;
676   __u8 sq_sig_all;
677   __u8 reserved[5];
678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679   __u64 driver_data[0];
680 };
681 struct ib_uverbs_modify_qp {
682   struct ib_uverbs_qp_dest dest;
683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684   struct ib_uverbs_qp_dest alt_dest;
685   __u32 qp_handle;
686   __u32 attr_mask;
687   __u32 qkey;
688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689   __u32 rq_psn;
690   __u32 sq_psn;
691   __u32 dest_qp_num;
692   __u32 qp_access_flags;
693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694   __u16 pkey_index;
695   __u16 alt_pkey_index;
696   __u8 qp_state;
697   __u8 cur_qp_state;
698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699   __u8 path_mtu;
700   __u8 path_mig_state;
701   __u8 en_sqd_async_notify;
702   __u8 max_rd_atomic;
703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704   __u8 max_dest_rd_atomic;
705   __u8 min_rnr_timer;
706   __u8 port_num;
707   __u8 timeout;
708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709   __u8 retry_cnt;
710   __u8 rnr_retry;
711   __u8 alt_port_num;
712   __u8 alt_timeout;
713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714   __u8 reserved[2];
715   __u64 driver_data[0];
716 };
717 struct ib_uverbs_ex_modify_qp {
718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719   struct ib_uverbs_modify_qp base;
720   __u32 rate_limit;
721   __u32 reserved;
722 };
723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724 struct ib_uverbs_modify_qp_resp {
725 };
726 struct ib_uverbs_ex_modify_qp_resp {
727   __u32 comp_mask;
728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729   __u32 response_length;
730 };
731 struct ib_uverbs_destroy_qp {
732   __u64 response;
733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734   __u32 qp_handle;
735   __u32 reserved;
736 };
737 struct ib_uverbs_destroy_qp_resp {
738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739   __u32 events_reported;
740 };
741 struct ib_uverbs_sge {
742   __u64 addr;
743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744   __u32 length;
745   __u32 lkey;
746 };
747 struct ib_uverbs_send_wr {
748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749   __u64 wr_id;
750   __u32 num_sge;
751   __u32 opcode;
752   __u32 send_flags;
753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
754   union {
755     __u32 imm_data;
756     __u32 invalidate_rkey;
757   } ex;
758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
759   union {
760     struct {
761       __u64 remote_addr;
762       __u32 rkey;
763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
764       __u32 reserved;
765     } rdma;
766     struct {
767       __u64 remote_addr;
768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
769       __u64 compare_add;
770       __u64 swap;
771       __u32 rkey;
772       __u32 reserved;
773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
774     } atomic;
775     struct {
776       __u32 ah;
777       __u32 remote_qpn;
778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
779       __u32 remote_qkey;
780       __u32 reserved;
781     } ud;
782   } wr;
783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
784 };
785 struct ib_uverbs_post_send {
786   __u64 response;
787   __u32 qp_handle;
788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
789   __u32 wr_count;
790   __u32 sge_count;
791   __u32 wqe_size;
792   struct ib_uverbs_send_wr send_wr[0];
793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794 };
795 struct ib_uverbs_post_send_resp {
796   __u32 bad_wr;
797 };
798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
799 struct ib_uverbs_recv_wr {
800   __u64 wr_id;
801   __u32 num_sge;
802   __u32 reserved;
803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
804 };
805 struct ib_uverbs_post_recv {
806   __u64 response;
807   __u32 qp_handle;
808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
809   __u32 wr_count;
810   __u32 sge_count;
811   __u32 wqe_size;
812   struct ib_uverbs_recv_wr recv_wr[0];
813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
814 };
815 struct ib_uverbs_post_recv_resp {
816   __u32 bad_wr;
817 };
818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
819 struct ib_uverbs_post_srq_recv {
820   __u64 response;
821   __u32 srq_handle;
822   __u32 wr_count;
823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
824   __u32 sge_count;
825   __u32 wqe_size;
826   struct ib_uverbs_recv_wr recv[0];
827 };
828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
829 struct ib_uverbs_post_srq_recv_resp {
830   __u32 bad_wr;
831 };
832 struct ib_uverbs_create_ah {
833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
834   __u64 response;
835   __u64 user_handle;
836   __u32 pd_handle;
837   __u32 reserved;
838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
839   struct ib_uverbs_ah_attr attr;
840 };
841 struct ib_uverbs_create_ah_resp {
842   __u32 ah_handle;
843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844 };
845 struct ib_uverbs_destroy_ah {
846   __u32 ah_handle;
847 };
848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
849 struct ib_uverbs_attach_mcast {
850   __u8 gid[16];
851   __u32 qp_handle;
852   __u16 mlid;
853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
854   __u16 reserved;
855   __u64 driver_data[0];
856 };
857 struct ib_uverbs_detach_mcast {
858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
859   __u8 gid[16];
860   __u32 qp_handle;
861   __u16 mlid;
862   __u16 reserved;
863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
864   __u64 driver_data[0];
865 };
866 struct ib_uverbs_flow_spec_hdr {
867   __u32 type;
868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
869   __u16 size;
870   __u16 reserved;
871   __u64 flow_spec_data[0];
872 };
873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
874 struct ib_uverbs_flow_eth_filter {
875   __u8 dst_mac[6];
876   __u8 src_mac[6];
877   __be16 ether_type;
878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
879   __be16 vlan_tag;
880 };
881 struct ib_uverbs_flow_spec_eth {
882   union {
883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
884     struct ib_uverbs_flow_spec_hdr hdr;
885     struct {
886       __u32 type;
887       __u16 size;
888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
889       __u16 reserved;
890     };
891   };
892   struct ib_uverbs_flow_eth_filter val;
893 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
894   struct ib_uverbs_flow_eth_filter mask;
895 };
896 struct ib_uverbs_flow_ipv4_filter {
897   __be32 src_ip;
898 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
899   __be32 dst_ip;
900   __u8 proto;
901   __u8 tos;
902   __u8 ttl;
903 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
904   __u8 flags;
905 };
906 struct ib_uverbs_flow_spec_ipv4 {
907   union {
908 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
909     struct ib_uverbs_flow_spec_hdr hdr;
910     struct {
911       __u32 type;
912       __u16 size;
913 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
914       __u16 reserved;
915     };
916   };
917   struct ib_uverbs_flow_ipv4_filter val;
918 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
919   struct ib_uverbs_flow_ipv4_filter mask;
920 };
921 struct ib_uverbs_flow_tcp_udp_filter {
922   __be16 dst_port;
923 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
924   __be16 src_port;
925 };
926 struct ib_uverbs_flow_spec_tcp_udp {
927   union {
928 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
929     struct ib_uverbs_flow_spec_hdr hdr;
930     struct {
931       __u32 type;
932       __u16 size;
933 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
934       __u16 reserved;
935     };
936   };
937   struct ib_uverbs_flow_tcp_udp_filter val;
938 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
939   struct ib_uverbs_flow_tcp_udp_filter mask;
940 };
941 struct ib_uverbs_flow_ipv6_filter {
942   __u8 src_ip[16];
943 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
944   __u8 dst_ip[16];
945   __be32 flow_label;
946   __u8 next_hdr;
947   __u8 traffic_class;
948 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
949   __u8 hop_limit;
950   __u8 reserved;
951 };
952 struct ib_uverbs_flow_spec_ipv6 {
953 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
954   union {
955     struct ib_uverbs_flow_spec_hdr hdr;
956     struct {
957       __u32 type;
958 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
959       __u16 size;
960       __u16 reserved;
961     };
962   };
963 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
964   struct ib_uverbs_flow_ipv6_filter val;
965   struct ib_uverbs_flow_ipv6_filter mask;
966 };
967 struct ib_uverbs_flow_tunnel_filter {
968 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
969   __be32 tunnel_id;
970 };
971 struct ib_uverbs_flow_spec_tunnel {
972   union {
973 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
974     struct ib_uverbs_flow_spec_hdr hdr;
975     struct {
976       __u32 type;
977       __u16 size;
978 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
979       __u16 reserved;
980     };
981   };
982   struct ib_uverbs_flow_tunnel_filter val;
983 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
984   struct ib_uverbs_flow_tunnel_filter mask;
985 };
986 struct ib_uverbs_flow_attr {
987   __u32 type;
988 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
989   __u16 size;
990   __u16 priority;
991   __u8 num_of_specs;
992   __u8 reserved[2];
993 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
994   __u8 port;
995   __u32 flags;
996   struct ib_uverbs_flow_spec_hdr flow_specs[0];
997 };
998 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
999 struct ib_uverbs_create_flow {
1000   __u32 comp_mask;
1001   __u32 qp_handle;
1002   struct ib_uverbs_flow_attr flow_attr;
1003 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1004 };
1005 struct ib_uverbs_create_flow_resp {
1006   __u32 comp_mask;
1007   __u32 flow_handle;
1008 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1009 };
1010 struct ib_uverbs_destroy_flow {
1011   __u32 comp_mask;
1012   __u32 flow_handle;
1013 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1014 };
1015 struct ib_uverbs_create_srq {
1016   __u64 response;
1017   __u64 user_handle;
1018 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1019   __u32 pd_handle;
1020   __u32 max_wr;
1021   __u32 max_sge;
1022   __u32 srq_limit;
1023 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1024   __u64 driver_data[0];
1025 };
1026 struct ib_uverbs_create_xsrq {
1027   __u64 response;
1028 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1029   __u64 user_handle;
1030   __u32 srq_type;
1031   __u32 pd_handle;
1032   __u32 max_wr;
1033 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1034   __u32 max_sge;
1035   __u32 srq_limit;
1036   __u32 reserved;
1037   __u32 xrcd_handle;
1038 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1039   __u32 cq_handle;
1040   __u64 driver_data[0];
1041 };
1042 struct ib_uverbs_create_srq_resp {
1043 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1044   __u32 srq_handle;
1045   __u32 max_wr;
1046   __u32 max_sge;
1047   __u32 srqn;
1048 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1049 };
1050 struct ib_uverbs_modify_srq {
1051   __u32 srq_handle;
1052   __u32 attr_mask;
1053 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1054   __u32 max_wr;
1055   __u32 srq_limit;
1056   __u64 driver_data[0];
1057 };
1058 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1059 struct ib_uverbs_query_srq {
1060   __u64 response;
1061   __u32 srq_handle;
1062   __u32 reserved;
1063 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1064   __u64 driver_data[0];
1065 };
1066 struct ib_uverbs_query_srq_resp {
1067   __u32 max_wr;
1068 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1069   __u32 max_sge;
1070   __u32 srq_limit;
1071   __u32 reserved;
1072 };
1073 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1074 struct ib_uverbs_destroy_srq {
1075   __u64 response;
1076   __u32 srq_handle;
1077   __u32 reserved;
1078 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1079 };
1080 struct ib_uverbs_destroy_srq_resp {
1081   __u32 events_reported;
1082 };
1083 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1084 struct ib_uverbs_ex_create_wq {
1085   __u32 comp_mask;
1086   __u32 wq_type;
1087   __u64 user_handle;
1088 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1089   __u32 pd_handle;
1090   __u32 cq_handle;
1091   __u32 max_wr;
1092   __u32 max_sge;
1093 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1094 };
1095 struct ib_uverbs_ex_create_wq_resp {
1096   __u32 comp_mask;
1097   __u32 response_length;
1098 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1099   __u32 wq_handle;
1100   __u32 max_wr;
1101   __u32 max_sge;
1102   __u32 wqn;
1103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1104 };
1105 struct ib_uverbs_ex_destroy_wq {
1106   __u32 comp_mask;
1107   __u32 wq_handle;
1108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1109 };
1110 struct ib_uverbs_ex_destroy_wq_resp {
1111   __u32 comp_mask;
1112   __u32 response_length;
1113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1114   __u32 events_reported;
1115   __u32 reserved;
1116 };
1117 struct ib_uverbs_ex_modify_wq {
1118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1119   __u32 attr_mask;
1120   __u32 wq_handle;
1121   __u32 wq_state;
1122   __u32 curr_wq_state;
1123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1124 };
1125 #define IB_USER_VERBS_MAX_LOG_IND_TBL_SIZE 0x0d
1126 struct ib_uverbs_ex_create_rwq_ind_table {
1127   __u32 comp_mask;
1128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1129   __u32 log_ind_tbl_size;
1130   __u32 wq_handles[0];
1131 };
1132 struct ib_uverbs_ex_create_rwq_ind_table_resp {
1133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1134   __u32 comp_mask;
1135   __u32 response_length;
1136   __u32 ind_tbl_handle;
1137   __u32 ind_tbl_num;
1138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1139 };
1140 struct ib_uverbs_ex_destroy_rwq_ind_table {
1141   __u32 comp_mask;
1142   __u32 ind_tbl_handle;
1143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1144 };
1145 #endif
1146