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 __QEDR_USER_H__
7#define __QEDR_USER_H__
8#include <linux/types.h>
9#define QEDR_ABI_VERSION		(8)
10struct qedr_alloc_ucontext_resp {
11	__aligned_u64 db_pa;
12	__u32 db_size;
13	__u32 max_send_wr;
14	__u32 max_recv_wr;
15	__u32 max_srq_wr;
16	__u32 sges_per_send_wr;
17	__u32 sges_per_recv_wr;
18	__u32 sges_per_srq_wr;
19	__u32 max_cqes;
20	__u8 dpm_enabled;
21	__u8 wids_enabled;
22	__u16 wid_count;
23	__u32 reserved;
24};
25struct qedr_alloc_pd_ureq {
26	__aligned_u64 rsvd1;
27};
28struct qedr_alloc_pd_uresp {
29	__u32 pd_id;
30	__u32 reserved;
31};
32struct qedr_create_cq_ureq {
33	__aligned_u64 addr;
34	__aligned_u64 len;
35};
36struct qedr_create_cq_uresp {
37	__u32 db_offset;
38	__u16 icid;
39	__u16 reserved;
40};
41struct qedr_create_qp_ureq {
42	__u32 qp_handle_hi;
43	__u32 qp_handle_lo;
44
45
46	__aligned_u64 sq_addr;
47
48	__aligned_u64 sq_len;
49
50
51	__aligned_u64 rq_addr;
52
53	__aligned_u64 rq_len;
54};
55struct qedr_create_qp_uresp {
56	__u32 qp_id;
57	__u32 atomic_supported;
58
59	__u32 sq_db_offset;
60	__u16 sq_icid;
61
62	__u32 rq_db_offset;
63	__u16 rq_icid;
64	__u32 rq_db2_offset;
65	__u32 reserved;
66};
67struct qedr_create_srq_ureq {
68
69	__aligned_u64 prod_pair_addr;
70
71	__aligned_u64 srq_addr;
72
73	__aligned_u64 srq_len;
74};
75struct qedr_create_srq_uresp {
76	__u16 srq_id;
77	__u16 reserved0;
78	__u32 reserved1;
79};
80#endif
81