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_rereg_mr {
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   __u64 response;
265   __u32 mr_handle;
266   __u32 flags;
267   __u64 start;
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   __u64 length;
270   __u64 hca_va;
271   __u32 pd_handle;
272   __u32 access_flags;
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 };
275 struct ib_uverbs_rereg_mr_resp {
276   __u32 lkey;
277   __u32 rkey;
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 };
280 struct ib_uverbs_dereg_mr {
281   __u32 mr_handle;
282 };
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 struct ib_uverbs_alloc_mw {
285   __u64 response;
286   __u32 pd_handle;
287   __u8 mw_type;
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289   __u8 reserved[3];
290 };
291 struct ib_uverbs_alloc_mw_resp {
292   __u32 mw_handle;
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294   __u32 rkey;
295 };
296 struct ib_uverbs_dealloc_mw {
297   __u32 mw_handle;
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 };
300 struct ib_uverbs_create_comp_channel {
301   __u64 response;
302 };
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 struct ib_uverbs_create_comp_channel_resp {
305   __u32 fd;
306 };
307 struct ib_uverbs_create_cq {
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309   __u64 response;
310   __u64 user_handle;
311   __u32 cqe;
312   __u32 comp_vector;
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314   __s32 comp_channel;
315   __u32 reserved;
316   __u64 driver_data[0];
317 };
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319 struct ib_uverbs_create_cq_resp {
320   __u32 cq_handle;
321   __u32 cqe;
322 };
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 struct ib_uverbs_resize_cq {
325   __u64 response;
326   __u32 cq_handle;
327   __u32 cqe;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329   __u64 driver_data[0];
330 };
331 struct ib_uverbs_resize_cq_resp {
332   __u32 cqe;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334   __u32 reserved;
335   __u64 driver_data[0];
336 };
337 struct ib_uverbs_poll_cq {
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   __u64 response;
340   __u32 cq_handle;
341   __u32 ne;
342 };
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 struct ib_uverbs_wc {
345   __u64 wr_id;
346   __u32 status;
347   __u32 opcode;
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   __u32 vendor_err;
350   __u32 byte_len;
351   union {
352     __u32 imm_data;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354     __u32 invalidate_rkey;
355   } ex;
356   __u32 qp_num;
357   __u32 src_qp;
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   __u32 wc_flags;
360   __u16 pkey_index;
361   __u16 slid;
362   __u8 sl;
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   __u8 dlid_path_bits;
365   __u8 port_num;
366   __u8 reserved;
367 };
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 struct ib_uverbs_poll_cq_resp {
370   __u32 count;
371   __u32 reserved;
372   struct ib_uverbs_wc wc[0];
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374 };
375 struct ib_uverbs_req_notify_cq {
376   __u32 cq_handle;
377   __u32 solicited_only;
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 };
380 struct ib_uverbs_destroy_cq {
381   __u64 response;
382   __u32 cq_handle;
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384   __u32 reserved;
385 };
386 struct ib_uverbs_destroy_cq_resp {
387   __u32 comp_events_reported;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389   __u32 async_events_reported;
390 };
391 struct ib_uverbs_global_route {
392   __u8 dgid[16];
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394   __u32 flow_label;
395   __u8 sgid_index;
396   __u8 hop_limit;
397   __u8 traffic_class;
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399   __u8 reserved;
400 };
401 struct ib_uverbs_ah_attr {
402   struct ib_uverbs_global_route grh;
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404   __u16 dlid;
405   __u8 sl;
406   __u8 src_path_bits;
407   __u8 static_rate;
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409   __u8 is_global;
410   __u8 port_num;
411   __u8 reserved;
412 };
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414 struct ib_uverbs_qp_attr {
415   __u32 qp_attr_mask;
416   __u32 qp_state;
417   __u32 cur_qp_state;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419   __u32 path_mtu;
420   __u32 path_mig_state;
421   __u32 qkey;
422   __u32 rq_psn;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424   __u32 sq_psn;
425   __u32 dest_qp_num;
426   __u32 qp_access_flags;
427   struct ib_uverbs_ah_attr ah_attr;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429   struct ib_uverbs_ah_attr alt_ah_attr;
430   __u32 max_send_wr;
431   __u32 max_recv_wr;
432   __u32 max_send_sge;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   __u32 max_recv_sge;
435   __u32 max_inline_data;
436   __u16 pkey_index;
437   __u16 alt_pkey_index;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   __u8 en_sqd_async_notify;
440   __u8 sq_draining;
441   __u8 max_rd_atomic;
442   __u8 max_dest_rd_atomic;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   __u8 min_rnr_timer;
445   __u8 port_num;
446   __u8 timeout;
447   __u8 retry_cnt;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   __u8 rnr_retry;
450   __u8 alt_port_num;
451   __u8 alt_timeout;
452   __u8 reserved[5];
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 };
455 struct ib_uverbs_create_qp {
456   __u64 response;
457   __u64 user_handle;
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459   __u32 pd_handle;
460   __u32 send_cq_handle;
461   __u32 recv_cq_handle;
462   __u32 srq_handle;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   __u32 max_send_wr;
465   __u32 max_recv_wr;
466   __u32 max_send_sge;
467   __u32 max_recv_sge;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469   __u32 max_inline_data;
470   __u8 sq_sig_all;
471   __u8 qp_type;
472   __u8 is_srq;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474   __u8 reserved;
475   __u64 driver_data[0];
476 };
477 struct ib_uverbs_open_qp {
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   __u64 response;
480   __u64 user_handle;
481   __u32 pd_handle;
482   __u32 qpn;
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484   __u8 qp_type;
485   __u8 reserved[7];
486   __u64 driver_data[0];
487 };
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 struct ib_uverbs_create_qp_resp {
490   __u32 qp_handle;
491   __u32 qpn;
492   __u32 max_send_wr;
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494   __u32 max_recv_wr;
495   __u32 max_send_sge;
496   __u32 max_recv_sge;
497   __u32 max_inline_data;
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499   __u32 reserved;
500 };
501 struct ib_uverbs_qp_dest {
502   __u8 dgid[16];
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504   __u32 flow_label;
505   __u16 dlid;
506   __u16 reserved;
507   __u8 sgid_index;
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509   __u8 hop_limit;
510   __u8 traffic_class;
511   __u8 sl;
512   __u8 src_path_bits;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514   __u8 static_rate;
515   __u8 is_global;
516   __u8 port_num;
517 };
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 struct ib_uverbs_query_qp {
520   __u64 response;
521   __u32 qp_handle;
522   __u32 attr_mask;
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524   __u64 driver_data[0];
525 };
526 struct ib_uverbs_query_qp_resp {
527   struct ib_uverbs_qp_dest dest;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529   struct ib_uverbs_qp_dest alt_dest;
530   __u32 max_send_wr;
531   __u32 max_recv_wr;
532   __u32 max_send_sge;
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534   __u32 max_recv_sge;
535   __u32 max_inline_data;
536   __u32 qkey;
537   __u32 rq_psn;
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539   __u32 sq_psn;
540   __u32 dest_qp_num;
541   __u32 qp_access_flags;
542   __u16 pkey_index;
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544   __u16 alt_pkey_index;
545   __u8 qp_state;
546   __u8 cur_qp_state;
547   __u8 path_mtu;
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549   __u8 path_mig_state;
550   __u8 sq_draining;
551   __u8 max_rd_atomic;
552   __u8 max_dest_rd_atomic;
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554   __u8 min_rnr_timer;
555   __u8 port_num;
556   __u8 timeout;
557   __u8 retry_cnt;
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559   __u8 rnr_retry;
560   __u8 alt_port_num;
561   __u8 alt_timeout;
562   __u8 sq_sig_all;
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564   __u8 reserved[5];
565   __u64 driver_data[0];
566 };
567 struct ib_uverbs_modify_qp {
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569   struct ib_uverbs_qp_dest dest;
570   struct ib_uverbs_qp_dest alt_dest;
571   __u32 qp_handle;
572   __u32 attr_mask;
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574   __u32 qkey;
575   __u32 rq_psn;
576   __u32 sq_psn;
577   __u32 dest_qp_num;
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579   __u32 qp_access_flags;
580   __u16 pkey_index;
581   __u16 alt_pkey_index;
582   __u8 qp_state;
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584   __u8 cur_qp_state;
585   __u8 path_mtu;
586   __u8 path_mig_state;
587   __u8 en_sqd_async_notify;
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589   __u8 max_rd_atomic;
590   __u8 max_dest_rd_atomic;
591   __u8 min_rnr_timer;
592   __u8 port_num;
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594   __u8 timeout;
595   __u8 retry_cnt;
596   __u8 rnr_retry;
597   __u8 alt_port_num;
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599   __u8 alt_timeout;
600   __u8 reserved[2];
601   __u64 driver_data[0];
602 };
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604 struct ib_uverbs_modify_qp_resp {
605 };
606 struct ib_uverbs_destroy_qp {
607   __u64 response;
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609   __u32 qp_handle;
610   __u32 reserved;
611 };
612 struct ib_uverbs_destroy_qp_resp {
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614   __u32 events_reported;
615 };
616 struct ib_uverbs_sge {
617   __u64 addr;
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619   __u32 length;
620   __u32 lkey;
621 };
622 struct ib_uverbs_send_wr {
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624   __u64 wr_id;
625   __u32 num_sge;
626   __u32 opcode;
627   __u32 send_flags;
628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629   union {
630     __u32 imm_data;
631     __u32 invalidate_rkey;
632   } ex;
633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634   union {
635     struct {
636       __u64 remote_addr;
637       __u32 rkey;
638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639       __u32 reserved;
640     } rdma;
641     struct {
642       __u64 remote_addr;
643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644       __u64 compare_add;
645       __u64 swap;
646       __u32 rkey;
647       __u32 reserved;
648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649     } atomic;
650     struct {
651       __u32 ah;
652       __u32 remote_qpn;
653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654       __u32 remote_qkey;
655       __u32 reserved;
656     } ud;
657   } wr;
658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659 };
660 struct ib_uverbs_post_send {
661   __u64 response;
662   __u32 qp_handle;
663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664   __u32 wr_count;
665   __u32 sge_count;
666   __u32 wqe_size;
667   struct ib_uverbs_send_wr send_wr[0];
668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669 };
670 struct ib_uverbs_post_send_resp {
671   __u32 bad_wr;
672 };
673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674 struct ib_uverbs_recv_wr {
675   __u64 wr_id;
676   __u32 num_sge;
677   __u32 reserved;
678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679 };
680 struct ib_uverbs_post_recv {
681   __u64 response;
682   __u32 qp_handle;
683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684   __u32 wr_count;
685   __u32 sge_count;
686   __u32 wqe_size;
687   struct ib_uverbs_recv_wr recv_wr[0];
688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689 };
690 struct ib_uverbs_post_recv_resp {
691   __u32 bad_wr;
692 };
693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694 struct ib_uverbs_post_srq_recv {
695   __u64 response;
696   __u32 srq_handle;
697   __u32 wr_count;
698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699   __u32 sge_count;
700   __u32 wqe_size;
701   struct ib_uverbs_recv_wr recv[0];
702 };
703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704 struct ib_uverbs_post_srq_recv_resp {
705   __u32 bad_wr;
706 };
707 struct ib_uverbs_create_ah {
708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709   __u64 response;
710   __u64 user_handle;
711   __u32 pd_handle;
712   __u32 reserved;
713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714   struct ib_uverbs_ah_attr attr;
715 };
716 struct ib_uverbs_create_ah_resp {
717   __u32 ah_handle;
718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719 };
720 struct ib_uverbs_destroy_ah {
721   __u32 ah_handle;
722 };
723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724 struct ib_uverbs_attach_mcast {
725   __u8 gid[16];
726   __u32 qp_handle;
727   __u16 mlid;
728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729   __u16 reserved;
730   __u64 driver_data[0];
731 };
732 struct ib_uverbs_detach_mcast {
733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734   __u8 gid[16];
735   __u32 qp_handle;
736   __u16 mlid;
737   __u16 reserved;
738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739   __u64 driver_data[0];
740 };
741 struct ib_uverbs_flow_spec_hdr {
742   __u32 type;
743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744   __u16 size;
745   __u16 reserved;
746   __u64 flow_spec_data[0];
747 };
748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749 struct ib_uverbs_flow_eth_filter {
750   __u8 dst_mac[6];
751   __u8 src_mac[6];
752   __be16 ether_type;
753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
754   __be16 vlan_tag;
755 };
756 struct ib_uverbs_flow_spec_eth {
757   union {
758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
759     struct ib_uverbs_flow_spec_hdr hdr;
760     struct {
761       __u32 type;
762       __u16 size;
763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
764       __u16 reserved;
765     };
766   };
767   struct ib_uverbs_flow_eth_filter val;
768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
769   struct ib_uverbs_flow_eth_filter mask;
770 };
771 struct ib_uverbs_flow_ipv4_filter {
772   __be32 src_ip;
773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
774   __be32 dst_ip;
775 };
776 struct ib_uverbs_flow_spec_ipv4 {
777   union {
778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
779     struct ib_uverbs_flow_spec_hdr hdr;
780     struct {
781       __u32 type;
782       __u16 size;
783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
784       __u16 reserved;
785     };
786   };
787   struct ib_uverbs_flow_ipv4_filter val;
788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
789   struct ib_uverbs_flow_ipv4_filter mask;
790 };
791 struct ib_uverbs_flow_tcp_udp_filter {
792   __be16 dst_port;
793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794   __be16 src_port;
795 };
796 struct ib_uverbs_flow_spec_tcp_udp {
797   union {
798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
799     struct ib_uverbs_flow_spec_hdr hdr;
800     struct {
801       __u32 type;
802       __u16 size;
803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
804       __u16 reserved;
805     };
806   };
807   struct ib_uverbs_flow_tcp_udp_filter val;
808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
809   struct ib_uverbs_flow_tcp_udp_filter mask;
810 };
811 struct ib_uverbs_flow_attr {
812   __u32 type;
813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
814   __u16 size;
815   __u16 priority;
816   __u8 num_of_specs;
817   __u8 reserved[2];
818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
819   __u8 port;
820   __u32 flags;
821   struct ib_uverbs_flow_spec_hdr flow_specs[0];
822 };
823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
824 struct ib_uverbs_create_flow {
825   __u32 comp_mask;
826   __u32 qp_handle;
827   struct ib_uverbs_flow_attr flow_attr;
828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
829 };
830 struct ib_uverbs_create_flow_resp {
831   __u32 comp_mask;
832   __u32 flow_handle;
833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
834 };
835 struct ib_uverbs_destroy_flow {
836   __u32 comp_mask;
837   __u32 flow_handle;
838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
839 };
840 struct ib_uverbs_create_srq {
841   __u64 response;
842   __u64 user_handle;
843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844   __u32 pd_handle;
845   __u32 max_wr;
846   __u32 max_sge;
847   __u32 srq_limit;
848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
849   __u64 driver_data[0];
850 };
851 struct ib_uverbs_create_xsrq {
852   __u64 response;
853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
854   __u64 user_handle;
855   __u32 srq_type;
856   __u32 pd_handle;
857   __u32 max_wr;
858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
859   __u32 max_sge;
860   __u32 srq_limit;
861   __u32 reserved;
862   __u32 xrcd_handle;
863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
864   __u32 cq_handle;
865   __u64 driver_data[0];
866 };
867 struct ib_uverbs_create_srq_resp {
868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
869   __u32 srq_handle;
870   __u32 max_wr;
871   __u32 max_sge;
872   __u32 srqn;
873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
874 };
875 struct ib_uverbs_modify_srq {
876   __u32 srq_handle;
877   __u32 attr_mask;
878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
879   __u32 max_wr;
880   __u32 srq_limit;
881   __u64 driver_data[0];
882 };
883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
884 struct ib_uverbs_query_srq {
885   __u64 response;
886   __u32 srq_handle;
887   __u32 reserved;
888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
889   __u64 driver_data[0];
890 };
891 struct ib_uverbs_query_srq_resp {
892   __u32 max_wr;
893 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
894   __u32 max_sge;
895   __u32 srq_limit;
896   __u32 reserved;
897 };
898 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
899 struct ib_uverbs_destroy_srq {
900   __u64 response;
901   __u32 srq_handle;
902   __u32 reserved;
903 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
904 };
905 struct ib_uverbs_destroy_srq_resp {
906   __u32 events_reported;
907 };
908 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
909 #endif
910