Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
rdma
ib_user_verbs.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2005 Topspin Communications. All rights reserved.
3
* Copyright (c) 2005, 2006 Cisco Systems. All rights reserved.
4
* Copyright (c) 2005 PathScale, Inc. All rights reserved.
5
* Copyright (c) 2006 Mellanox Technologies. All rights reserved.
6
*
7
* This software is available to you under a choice of one of two
8
* licenses. You may choose to be licensed under the terms of the GNU
9
* General Public License (GPL) Version 2, available from the file
10
* COPYING in the main directory of this source tree, or the
11
* OpenIB.org BSD license below:
12
*
13
* Redistribution and use in source and binary forms, with or
14
* without modification, are permitted provided that the following
15
* conditions are met:
16
*
17
* - Redistributions of source code must retain the above
18
* copyright notice, this list of conditions and the following
19
* disclaimer.
20
*
21
* - Redistributions in binary form must reproduce the above
22
* copyright notice, this list of conditions and the following
23
* disclaimer in the documentation and/or other materials
24
* provided with the distribution.
25
*
26
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
30
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
31
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
32
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
* SOFTWARE.
34
*/
35
36
#ifndef IB_USER_VERBS_H
37
#define IB_USER_VERBS_H
38
39
#include <linux/types.h>
40
41
/*
42
* Increment this value if any changes that break userspace ABI
43
* compatibility are made.
44
*/
45
#define IB_USER_VERBS_ABI_VERSION 6
46
47
enum
{
48
IB_USER_VERBS_CMD_GET_CONTEXT
,
49
IB_USER_VERBS_CMD_QUERY_DEVICE
,
50
IB_USER_VERBS_CMD_QUERY_PORT
,
51
IB_USER_VERBS_CMD_ALLOC_PD
,
52
IB_USER_VERBS_CMD_DEALLOC_PD
,
53
IB_USER_VERBS_CMD_CREATE_AH
,
54
IB_USER_VERBS_CMD_MODIFY_AH
,
55
IB_USER_VERBS_CMD_QUERY_AH
,
56
IB_USER_VERBS_CMD_DESTROY_AH
,
57
IB_USER_VERBS_CMD_REG_MR
,
58
IB_USER_VERBS_CMD_REG_SMR
,
59
IB_USER_VERBS_CMD_REREG_MR
,
60
IB_USER_VERBS_CMD_QUERY_MR
,
61
IB_USER_VERBS_CMD_DEREG_MR
,
62
IB_USER_VERBS_CMD_ALLOC_MW
,
63
IB_USER_VERBS_CMD_BIND_MW
,
64
IB_USER_VERBS_CMD_DEALLOC_MW
,
65
IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL
,
66
IB_USER_VERBS_CMD_CREATE_CQ
,
67
IB_USER_VERBS_CMD_RESIZE_CQ
,
68
IB_USER_VERBS_CMD_DESTROY_CQ
,
69
IB_USER_VERBS_CMD_POLL_CQ
,
70
IB_USER_VERBS_CMD_PEEK_CQ
,
71
IB_USER_VERBS_CMD_REQ_NOTIFY_CQ
,
72
IB_USER_VERBS_CMD_CREATE_QP
,
73
IB_USER_VERBS_CMD_QUERY_QP
,
74
IB_USER_VERBS_CMD_MODIFY_QP
,
75
IB_USER_VERBS_CMD_DESTROY_QP
,
76
IB_USER_VERBS_CMD_POST_SEND
,
77
IB_USER_VERBS_CMD_POST_RECV
,
78
IB_USER_VERBS_CMD_ATTACH_MCAST
,
79
IB_USER_VERBS_CMD_DETACH_MCAST
,
80
IB_USER_VERBS_CMD_CREATE_SRQ
,
81
IB_USER_VERBS_CMD_MODIFY_SRQ
,
82
IB_USER_VERBS_CMD_QUERY_SRQ
,
83
IB_USER_VERBS_CMD_DESTROY_SRQ
,
84
IB_USER_VERBS_CMD_POST_SRQ_RECV
,
85
IB_USER_VERBS_CMD_OPEN_XRCD
,
86
IB_USER_VERBS_CMD_CLOSE_XRCD
,
87
IB_USER_VERBS_CMD_CREATE_XSRQ
,
88
IB_USER_VERBS_CMD_OPEN_QP
89
};
90
91
/*
92
* Make sure that all structs defined in this file remain laid out so
93
* that they pack the same way on 32-bit and 64-bit architectures (to
94
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
95
* Specifically:
96
* - Do not use pointer types -- pass pointers in __u64 instead.
97
* - Make sure that any structure larger than 4 bytes is padded to a
98
* multiple of 8 bytes. Otherwise the structure size will be
99
* different between 32-bit and 64-bit architectures.
100
*/
101
102
struct
ib_uverbs_async_event_desc
{
103
__u64
element
;
104
__u32
event_type
;
/* enum ib_event_type */
105
__u32
reserved
;
106
};
107
108
struct
ib_uverbs_comp_event_desc
{
109
__u64
cq_handle
;
110
};
111
112
/*
113
* All commands from userspace should start with a __u32 command field
114
* followed by __u16 in_words and out_words fields (which give the
115
* length of the command block and response buffer if any in 32-bit
116
* words). The kernel driver will read these fields first and read
117
* the rest of the command struct based on these value.
118
*/
119
120
struct
ib_uverbs_cmd_hdr
{
121
__u32
command
;
122
__u16
in_words
;
123
__u16
out_words
;
124
};
125
126
struct
ib_uverbs_get_context
{
127
__u64
response
;
128
__u64
driver_data
[0];
129
};
130
131
struct
ib_uverbs_get_context_resp
{
132
__u32
async_fd
;
133
__u32
num_comp_vectors
;
134
};
135
136
struct
ib_uverbs_query_device
{
137
__u64
response
;
138
__u64
driver_data
[0];
139
};
140
141
struct
ib_uverbs_query_device_resp
{
142
__u64
fw_ver
;
143
__be64
node_guid
;
144
__be64
sys_image_guid
;
145
__u64
max_mr_size
;
146
__u64
page_size_cap
;
147
__u32
vendor_id
;
148
__u32
vendor_part_id
;
149
__u32
hw_ver
;
150
__u32
max_qp
;
151
__u32
max_qp_wr
;
152
__u32
device_cap_flags
;
153
__u32
max_sge
;
154
__u32
max_sge_rd
;
155
__u32
max_cq
;
156
__u32
max_cqe
;
157
__u32
max_mr
;
158
__u32
max_pd
;
159
__u32
max_qp_rd_atom
;
160
__u32
max_ee_rd_atom
;
161
__u32
max_res_rd_atom
;
162
__u32
max_qp_init_rd_atom
;
163
__u32
max_ee_init_rd_atom
;
164
__u32
atomic_cap
;
165
__u32
max_ee
;
166
__u32
max_rdd
;
167
__u32
max_mw
;
168
__u32
max_raw_ipv6_qp
;
169
__u32
max_raw_ethy_qp
;
170
__u32
max_mcast_grp
;
171
__u32
max_mcast_qp_attach
;
172
__u32
max_total_mcast_qp_attach
;
173
__u32
max_ah
;
174
__u32
max_fmr
;
175
__u32
max_map_per_fmr
;
176
__u32
max_srq
;
177
__u32
max_srq_wr
;
178
__u32
max_srq_sge
;
179
__u16
max_pkeys
;
180
__u8
local_ca_ack_delay
;
181
__u8
phys_port_cnt
;
182
__u8
reserved
[4];
183
};
184
185
struct
ib_uverbs_query_port
{
186
__u64
response
;
187
__u8
port_num
;
188
__u8
reserved
[7];
189
__u64
driver_data
[0];
190
};
191
192
struct
ib_uverbs_query_port_resp
{
193
__u32
port_cap_flags
;
194
__u32
max_msg_sz
;
195
__u32
bad_pkey_cntr
;
196
__u32
qkey_viol_cntr
;
197
__u32
gid_tbl_len
;
198
__u16
pkey_tbl_len
;
199
__u16
lid
;
200
__u16
sm_lid
;
201
__u8
state
;
202
__u8
max_mtu
;
203
__u8
active_mtu
;
204
__u8
lmc
;
205
__u8
max_vl_num
;
206
__u8
sm_sl
;
207
__u8
subnet_timeout
;
208
__u8
init_type_reply
;
209
__u8
active_width
;
210
__u8
active_speed
;
211
__u8
phys_state
;
212
__u8
link_layer
;
213
__u8
reserved
[2];
214
};
215
216
struct
ib_uverbs_alloc_pd
{
217
__u64
response
;
218
__u64
driver_data
[0];
219
};
220
221
struct
ib_uverbs_alloc_pd_resp
{
222
__u32
pd_handle
;
223
};
224
225
struct
ib_uverbs_dealloc_pd
{
226
__u32
pd_handle
;
227
};
228
229
struct
ib_uverbs_open_xrcd
{
230
__u64
response
;
231
__u32
fd
;
232
__u32
oflags
;
233
__u64
driver_data
[0];
234
};
235
236
struct
ib_uverbs_open_xrcd_resp
{
237
__u32
xrcd_handle
;
238
};
239
240
struct
ib_uverbs_close_xrcd
{
241
__u32
xrcd_handle
;
242
};
243
244
struct
ib_uverbs_reg_mr
{
245
__u64
response
;
246
__u64
start
;
247
__u64
length
;
248
__u64
hca_va
;
249
__u32
pd_handle
;
250
__u32
access_flags
;
251
__u64
driver_data
[0];
252
};
253
254
struct
ib_uverbs_reg_mr_resp
{
255
__u32
mr_handle
;
256
__u32
lkey
;
257
__u32
rkey
;
258
};
259
260
struct
ib_uverbs_dereg_mr
{
261
__u32
mr_handle
;
262
};
263
264
struct
ib_uverbs_create_comp_channel
{
265
__u64
response
;
266
};
267
268
struct
ib_uverbs_create_comp_channel_resp
{
269
__u32
fd
;
270
};
271
272
struct
ib_uverbs_create_cq
{
273
__u64
response
;
274
__u64
user_handle
;
275
__u32
cqe
;
276
__u32
comp_vector
;
277
__s32
comp_channel
;
278
__u32
reserved
;
279
__u64
driver_data
[0];
280
};
281
282
struct
ib_uverbs_create_cq_resp
{
283
__u32
cq_handle
;
284
__u32
cqe
;
285
};
286
287
struct
ib_uverbs_resize_cq
{
288
__u64
response
;
289
__u32
cq_handle
;
290
__u32
cqe
;
291
__u64
driver_data
[0];
292
};
293
294
struct
ib_uverbs_resize_cq_resp
{
295
__u32
cqe
;
296
__u32
reserved
;
297
__u64
driver_data
[0];
298
};
299
300
struct
ib_uverbs_poll_cq
{
301
__u64
response
;
302
__u32
cq_handle
;
303
__u32
ne
;
304
};
305
306
struct
ib_uverbs_wc
{
307
__u64
wr_id
;
308
__u32
status
;
309
__u32
opcode
;
310
__u32
vendor_err
;
311
__u32
byte_len
;
312
union
{
313
__u32
imm_data
;
314
__u32
invalidate_rkey
;
315
}
ex
;
316
__u32
qp_num
;
317
__u32
src_qp
;
318
__u32
wc_flags
;
319
__u16
pkey_index
;
320
__u16
slid
;
321
__u8
sl
;
322
__u8
dlid_path_bits
;
323
__u8
port_num
;
324
__u8
reserved
;
325
};
326
327
struct
ib_uverbs_poll_cq_resp
{
328
__u32
count
;
329
__u32
reserved
;
330
struct
ib_uverbs_wc
wc
[0];
331
};
332
333
struct
ib_uverbs_req_notify_cq
{
334
__u32
cq_handle
;
335
__u32
solicited_only
;
336
};
337
338
struct
ib_uverbs_destroy_cq
{
339
__u64
response
;
340
__u32
cq_handle
;
341
__u32
reserved
;
342
};
343
344
struct
ib_uverbs_destroy_cq_resp
{
345
__u32
comp_events_reported
;
346
__u32
async_events_reported
;
347
};
348
349
struct
ib_uverbs_global_route
{
350
__u8
dgid
[16];
351
__u32
flow_label
;
352
__u8
sgid_index
;
353
__u8
hop_limit
;
354
__u8
traffic_class
;
355
__u8
reserved
;
356
};
357
358
struct
ib_uverbs_ah_attr
{
359
struct
ib_uverbs_global_route
grh
;
360
__u16
dlid
;
361
__u8
sl
;
362
__u8
src_path_bits
;
363
__u8
static_rate
;
364
__u8
is_global
;
365
__u8
port_num
;
366
__u8
reserved
;
367
};
368
369
struct
ib_uverbs_qp_attr
{
370
__u32
qp_attr_mask
;
371
__u32
qp_state
;
372
__u32
cur_qp_state
;
373
__u32
path_mtu
;
374
__u32
path_mig_state
;
375
__u32
qkey
;
376
__u32
rq_psn
;
377
__u32
sq_psn
;
378
__u32
dest_qp_num
;
379
__u32
qp_access_flags
;
380
381
struct
ib_uverbs_ah_attr
ah_attr
;
382
struct
ib_uverbs_ah_attr
alt_ah_attr
;
383
384
/* ib_qp_cap */
385
__u32
max_send_wr
;
386
__u32
max_recv_wr
;
387
__u32
max_send_sge
;
388
__u32
max_recv_sge
;
389
__u32
max_inline_data
;
390
391
__u16
pkey_index
;
392
__u16
alt_pkey_index
;
393
__u8
en_sqd_async_notify
;
394
__u8
sq_draining
;
395
__u8
max_rd_atomic
;
396
__u8
max_dest_rd_atomic
;
397
__u8
min_rnr_timer
;
398
__u8
port_num
;
399
__u8
timeout
;
400
__u8
retry_cnt
;
401
__u8
rnr_retry
;
402
__u8
alt_port_num
;
403
__u8
alt_timeout
;
404
__u8
reserved
[5];
405
};
406
407
struct
ib_uverbs_create_qp
{
408
__u64
response
;
409
__u64
user_handle
;
410
__u32
pd_handle
;
411
__u32
send_cq_handle
;
412
__u32
recv_cq_handle
;
413
__u32
srq_handle
;
414
__u32
max_send_wr
;
415
__u32
max_recv_wr
;
416
__u32
max_send_sge
;
417
__u32
max_recv_sge
;
418
__u32
max_inline_data
;
419
__u8
sq_sig_all
;
420
__u8
qp_type
;
421
__u8
is_srq
;
422
__u8
reserved
;
423
__u64
driver_data
[0];
424
};
425
426
struct
ib_uverbs_open_qp
{
427
__u64
response
;
428
__u64
user_handle
;
429
__u32
pd_handle
;
430
__u32
qpn
;
431
__u8
qp_type
;
432
__u8
reserved
[7];
433
__u64
driver_data
[0];
434
};
435
436
/* also used for open response */
437
struct
ib_uverbs_create_qp_resp
{
438
__u32
qp_handle
;
439
__u32
qpn
;
440
__u32
max_send_wr
;
441
__u32
max_recv_wr
;
442
__u32
max_send_sge
;
443
__u32
max_recv_sge
;
444
__u32
max_inline_data
;
445
__u32
reserved
;
446
};
447
448
/*
449
* This struct needs to remain a multiple of 8 bytes to keep the
450
* alignment of the modify QP parameters.
451
*/
452
struct
ib_uverbs_qp_dest
{
453
__u8
dgid
[16];
454
__u32
flow_label
;
455
__u16
dlid
;
456
__u16
reserved
;
457
__u8
sgid_index
;
458
__u8
hop_limit
;
459
__u8
traffic_class
;
460
__u8
sl
;
461
__u8
src_path_bits
;
462
__u8
static_rate
;
463
__u8
is_global
;
464
__u8
port_num
;
465
};
466
467
struct
ib_uverbs_query_qp
{
468
__u64
response
;
469
__u32
qp_handle
;
470
__u32
attr_mask
;
471
__u64
driver_data
[0];
472
};
473
474
struct
ib_uverbs_query_qp_resp
{
475
struct
ib_uverbs_qp_dest
dest
;
476
struct
ib_uverbs_qp_dest
alt_dest
;
477
__u32
max_send_wr
;
478
__u32
max_recv_wr
;
479
__u32
max_send_sge
;
480
__u32
max_recv_sge
;
481
__u32
max_inline_data
;
482
__u32
qkey
;
483
__u32
rq_psn
;
484
__u32
sq_psn
;
485
__u32
dest_qp_num
;
486
__u32
qp_access_flags
;
487
__u16
pkey_index
;
488
__u16
alt_pkey_index
;
489
__u8
qp_state
;
490
__u8
cur_qp_state
;
491
__u8
path_mtu
;
492
__u8
path_mig_state
;
493
__u8
sq_draining
;
494
__u8
max_rd_atomic
;
495
__u8
max_dest_rd_atomic
;
496
__u8
min_rnr_timer
;
497
__u8
port_num
;
498
__u8
timeout
;
499
__u8
retry_cnt
;
500
__u8
rnr_retry
;
501
__u8
alt_port_num
;
502
__u8
alt_timeout
;
503
__u8
sq_sig_all
;
504
__u8
reserved
[5];
505
__u64
driver_data
[0];
506
};
507
508
struct
ib_uverbs_modify_qp
{
509
struct
ib_uverbs_qp_dest
dest
;
510
struct
ib_uverbs_qp_dest
alt_dest
;
511
__u32
qp_handle
;
512
__u32
attr_mask
;
513
__u32
qkey
;
514
__u32
rq_psn
;
515
__u32
sq_psn
;
516
__u32
dest_qp_num
;
517
__u32
qp_access_flags
;
518
__u16
pkey_index
;
519
__u16
alt_pkey_index
;
520
__u8
qp_state
;
521
__u8
cur_qp_state
;
522
__u8
path_mtu
;
523
__u8
path_mig_state
;
524
__u8
en_sqd_async_notify
;
525
__u8
max_rd_atomic
;
526
__u8
max_dest_rd_atomic
;
527
__u8
min_rnr_timer
;
528
__u8
port_num
;
529
__u8
timeout
;
530
__u8
retry_cnt
;
531
__u8
rnr_retry
;
532
__u8
alt_port_num
;
533
__u8
alt_timeout
;
534
__u8
reserved
[2];
535
__u64
driver_data
[0];
536
};
537
538
struct
ib_uverbs_modify_qp_resp
{
539
};
540
541
struct
ib_uverbs_destroy_qp
{
542
__u64
response
;
543
__u32
qp_handle
;
544
__u32
reserved
;
545
};
546
547
struct
ib_uverbs_destroy_qp_resp
{
548
__u32
events_reported
;
549
};
550
551
/*
552
* The ib_uverbs_sge structure isn't used anywhere, since we assume
553
* the ib_sge structure is packed the same way on 32-bit and 64-bit
554
* architectures in both kernel and user space. It's just here to
555
* document the ABI.
556
*/
557
struct
ib_uverbs_sge
{
558
__u64
addr
;
559
__u32
length
;
560
__u32
lkey
;
561
};
562
563
struct
ib_uverbs_send_wr
{
564
__u64
wr_id
;
565
__u32
num_sge
;
566
__u32
opcode
;
567
__u32
send_flags
;
568
union
{
569
__u32
imm_data
;
570
__u32
invalidate_rkey
;
571
}
ex
;
572
union
{
573
struct
{
574
__u64
remote_addr
;
575
__u32
rkey
;
576
__u32
reserved
;
577
}
rdma
;
578
struct
{
579
__u64
remote_addr
;
580
__u64
compare_add
;
581
__u64
swap
;
582
__u32
rkey
;
583
__u32
reserved
;
584
}
atomic
;
585
struct
{
586
__u32
ah
;
587
__u32
remote_qpn
;
588
__u32
remote_qkey
;
589
__u32
reserved
;
590
}
ud
;
591
}
wr
;
592
};
593
594
struct
ib_uverbs_post_send
{
595
__u64
response
;
596
__u32
qp_handle
;
597
__u32
wr_count
;
598
__u32
sge_count
;
599
__u32
wqe_size
;
600
struct
ib_uverbs_send_wr
send_wr
[0];
601
};
602
603
struct
ib_uverbs_post_send_resp
{
604
__u32
bad_wr
;
605
};
606
607
struct
ib_uverbs_recv_wr
{
608
__u64
wr_id
;
609
__u32
num_sge
;
610
__u32
reserved
;
611
};
612
613
struct
ib_uverbs_post_recv
{
614
__u64
response
;
615
__u32
qp_handle
;
616
__u32
wr_count
;
617
__u32
sge_count
;
618
__u32
wqe_size
;
619
struct
ib_uverbs_recv_wr
recv_wr
[0];
620
};
621
622
struct
ib_uverbs_post_recv_resp
{
623
__u32
bad_wr
;
624
};
625
626
struct
ib_uverbs_post_srq_recv
{
627
__u64
response
;
628
__u32
srq_handle
;
629
__u32
wr_count
;
630
__u32
sge_count
;
631
__u32
wqe_size
;
632
struct
ib_uverbs_recv_wr
recv
[0];
633
};
634
635
struct
ib_uverbs_post_srq_recv_resp
{
636
__u32
bad_wr
;
637
};
638
639
struct
ib_uverbs_create_ah
{
640
__u64
response
;
641
__u64
user_handle
;
642
__u32
pd_handle
;
643
__u32
reserved
;
644
struct
ib_uverbs_ah_attr
attr
;
645
};
646
647
struct
ib_uverbs_create_ah_resp
{
648
__u32
ah_handle
;
649
};
650
651
struct
ib_uverbs_destroy_ah
{
652
__u32
ah_handle
;
653
};
654
655
struct
ib_uverbs_attach_mcast
{
656
__u8
gid
[16];
657
__u32
qp_handle
;
658
__u16
mlid
;
659
__u16
reserved
;
660
__u64
driver_data
[0];
661
};
662
663
struct
ib_uverbs_detach_mcast
{
664
__u8
gid
[16];
665
__u32
qp_handle
;
666
__u16
mlid
;
667
__u16
reserved
;
668
__u64
driver_data
[0];
669
};
670
671
struct
ib_uverbs_create_srq
{
672
__u64
response
;
673
__u64
user_handle
;
674
__u32
pd_handle
;
675
__u32
max_wr
;
676
__u32
max_sge
;
677
__u32
srq_limit
;
678
__u64
driver_data
[0];
679
};
680
681
struct
ib_uverbs_create_xsrq
{
682
__u64
response
;
683
__u64
user_handle
;
684
__u32
srq_type
;
685
__u32
pd_handle
;
686
__u32
max_wr
;
687
__u32
max_sge
;
688
__u32
srq_limit
;
689
__u32
reserved
;
690
__u32
xrcd_handle
;
691
__u32
cq_handle
;
692
__u64
driver_data
[0];
693
};
694
695
struct
ib_uverbs_create_srq_resp
{
696
__u32
srq_handle
;
697
__u32
max_wr
;
698
__u32
max_sge
;
699
__u32
srqn
;
700
};
701
702
struct
ib_uverbs_modify_srq
{
703
__u32
srq_handle
;
704
__u32
attr_mask
;
705
__u32
max_wr
;
706
__u32
srq_limit
;
707
__u64
driver_data
[0];
708
};
709
710
struct
ib_uverbs_query_srq
{
711
__u64
response
;
712
__u32
srq_handle
;
713
__u32
reserved
;
714
__u64
driver_data
[0];
715
};
716
717
struct
ib_uverbs_query_srq_resp
{
718
__u32
max_wr
;
719
__u32
max_sge
;
720
__u32
srq_limit
;
721
__u32
reserved
;
722
};
723
724
struct
ib_uverbs_destroy_srq
{
725
__u64
response
;
726
__u32
srq_handle
;
727
__u32
reserved
;
728
};
729
730
struct
ib_uverbs_destroy_srq_resp
{
731
__u32
events_reported
;
732
};
733
734
#endif
/* IB_USER_VERBS_H */
Generated on Thu Jan 10 2013 14:53:21 for Linux Kernel by
1.8.2