• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef I40IW_ABI_H
7 #define I40IW_ABI_H
8 #include <linux/types.h>
9 #define I40IW_ABI_VER 5
10 struct i40iw_alloc_ucontext_req {
11 	__u32 reserved32;
12 	__u8 userspace_ver;
13 	__u8 reserved8[3];
14 };
15 struct i40iw_alloc_ucontext_resp {
16 	__u32 max_pds;
17 	__u32 max_qps;
18 	__u32 wq_size;
19 	__u8 kernel_ver;
20 	__u8 reserved[3];
21 };
22 struct i40iw_alloc_pd_resp {
23 	__u32 pd_id;
24 	__u8 reserved[4];
25 };
26 struct i40iw_create_cq_req {
27 	__aligned_u64 user_cq_buffer;
28 	__aligned_u64 user_shadow_area;
29 };
30 struct i40iw_create_qp_req {
31 	__aligned_u64 user_wqe_buffers;
32 	__aligned_u64 user_compl_ctx;
33 
34 	__aligned_u64 user_sq_phb;
35 	__aligned_u64 user_rq_phb;
36 };
37 enum i40iw_memreg_type {
38 	IW_MEMREG_TYPE_MEM = 0x0000,
39 	IW_MEMREG_TYPE_QP = 0x0001,
40 	IW_MEMREG_TYPE_CQ = 0x0002,
41 };
42 struct i40iw_mem_reg_req {
43 	__u16 reg_type;
44 	__u16 cq_pages;
45 	__u16 rq_pages;
46 	__u16 sq_pages;
47 };
48 struct i40iw_create_cq_resp {
49 	__u32 cq_id;
50 	__u32 cq_size;
51 	__u32 mmap_db_index;
52 	__u32 reserved;
53 };
54 struct i40iw_create_qp_resp {
55 	__u32 qp_id;
56 	__u32 actual_sq_size;
57 	__u32 actual_rq_size;
58 	__u32 i40iw_drv_opt;
59 	__u16 push_idx;
60 	__u8  lsmm;
61 	__u8  rsvd2;
62 };
63 #endif
64