xref: /aosp_15_r20/prebuilts/build-tools/sysroots/arm-unknown-linux-musleabihf/include/rdma/siw-abi.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _SIW_USER_H
8*cda5da8dSAndroid Build Coastguard Worker #define _SIW_USER_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
10*cda5da8dSAndroid Build Coastguard Worker #define SIW_NODE_DESC_COMMON "Software iWARP stack"
11*cda5da8dSAndroid Build Coastguard Worker #define SIW_ABI_VERSION 1
12*cda5da8dSAndroid Build Coastguard Worker #define SIW_MAX_SGE 6
13*cda5da8dSAndroid Build Coastguard Worker #define SIW_UOBJ_MAX_KEY 0x08FFFF
14*cda5da8dSAndroid Build Coastguard Worker #define SIW_INVAL_UOBJ_KEY (SIW_UOBJ_MAX_KEY + 1)
15*cda5da8dSAndroid Build Coastguard Worker struct siw_uresp_create_cq {
16*cda5da8dSAndroid Build Coastguard Worker   __u32 cq_id;
17*cda5da8dSAndroid Build Coastguard Worker   __u32 num_cqe;
18*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 cq_key;
19*cda5da8dSAndroid Build Coastguard Worker };
20*cda5da8dSAndroid Build Coastguard Worker struct siw_uresp_create_qp {
21*cda5da8dSAndroid Build Coastguard Worker   __u32 qp_id;
22*cda5da8dSAndroid Build Coastguard Worker   __u32 num_sqe;
23*cda5da8dSAndroid Build Coastguard Worker   __u32 num_rqe;
24*cda5da8dSAndroid Build Coastguard Worker   __u32 pad;
25*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 sq_key;
26*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 rq_key;
27*cda5da8dSAndroid Build Coastguard Worker };
28*cda5da8dSAndroid Build Coastguard Worker struct siw_ureq_reg_mr {
29*cda5da8dSAndroid Build Coastguard Worker   __u8 stag_key;
30*cda5da8dSAndroid Build Coastguard Worker   __u8 reserved[3];
31*cda5da8dSAndroid Build Coastguard Worker   __u32 pad;
32*cda5da8dSAndroid Build Coastguard Worker };
33*cda5da8dSAndroid Build Coastguard Worker struct siw_uresp_reg_mr {
34*cda5da8dSAndroid Build Coastguard Worker   __u32 stag;
35*cda5da8dSAndroid Build Coastguard Worker   __u32 pad;
36*cda5da8dSAndroid Build Coastguard Worker };
37*cda5da8dSAndroid Build Coastguard Worker struct siw_uresp_create_srq {
38*cda5da8dSAndroid Build Coastguard Worker   __u32 num_rqe;
39*cda5da8dSAndroid Build Coastguard Worker   __u32 pad;
40*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 srq_key;
41*cda5da8dSAndroid Build Coastguard Worker };
42*cda5da8dSAndroid Build Coastguard Worker struct siw_uresp_alloc_ctx {
43*cda5da8dSAndroid Build Coastguard Worker   __u32 dev_id;
44*cda5da8dSAndroid Build Coastguard Worker   __u32 pad;
45*cda5da8dSAndroid Build Coastguard Worker };
46*cda5da8dSAndroid Build Coastguard Worker enum siw_opcode {
47*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_WRITE,
48*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_READ,
49*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_READ_LOCAL_INV,
50*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_SEND,
51*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_SEND_WITH_IMM,
52*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_SEND_REMOTE_INV,
53*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_FETCH_AND_ADD,
54*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_COMP_AND_SWAP,
55*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_RECEIVE,
56*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_READ_RESPONSE,
57*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_INVAL_STAG,
58*cda5da8dSAndroid Build Coastguard Worker   SIW_OP_REG_MR,
59*cda5da8dSAndroid Build Coastguard Worker   SIW_NUM_OPCODES
60*cda5da8dSAndroid Build Coastguard Worker };
61*cda5da8dSAndroid Build Coastguard Worker struct siw_sge {
62*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 laddr;
63*cda5da8dSAndroid Build Coastguard Worker   __u32 length;
64*cda5da8dSAndroid Build Coastguard Worker   __u32 lkey;
65*cda5da8dSAndroid Build Coastguard Worker };
66*cda5da8dSAndroid Build Coastguard Worker #define SIW_MAX_INLINE (sizeof(struct siw_sge) * (SIW_MAX_SGE - 1))
67*cda5da8dSAndroid Build Coastguard Worker #if SIW_MAX_SGE < 2
68*cda5da8dSAndroid Build Coastguard Worker #error "SIW_MAX_SGE must be at least 2"
69*cda5da8dSAndroid Build Coastguard Worker #endif
70*cda5da8dSAndroid Build Coastguard Worker enum siw_wqe_flags {
71*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_VALID = 1,
72*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_INLINE = (1 << 1),
73*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_SIGNALLED = (1 << 2),
74*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_SOLICITED = (1 << 3),
75*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_READ_FENCE = (1 << 4),
76*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_REM_INVAL = (1 << 5),
77*cda5da8dSAndroid Build Coastguard Worker   SIW_WQE_COMPLETED = (1 << 6)
78*cda5da8dSAndroid Build Coastguard Worker };
79*cda5da8dSAndroid Build Coastguard Worker struct siw_sqe {
80*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 id;
81*cda5da8dSAndroid Build Coastguard Worker   __u16 flags;
82*cda5da8dSAndroid Build Coastguard Worker   __u8 num_sge;
83*cda5da8dSAndroid Build Coastguard Worker   __u8 opcode;
84*cda5da8dSAndroid Build Coastguard Worker   __u32 rkey;
85*cda5da8dSAndroid Build Coastguard Worker   union {
86*cda5da8dSAndroid Build Coastguard Worker     __aligned_u64 raddr;
87*cda5da8dSAndroid Build Coastguard Worker     __aligned_u64 base_mr;
88*cda5da8dSAndroid Build Coastguard Worker   };
89*cda5da8dSAndroid Build Coastguard Worker   union {
90*cda5da8dSAndroid Build Coastguard Worker     struct siw_sge sge[SIW_MAX_SGE];
91*cda5da8dSAndroid Build Coastguard Worker     __aligned_u64 access;
92*cda5da8dSAndroid Build Coastguard Worker   };
93*cda5da8dSAndroid Build Coastguard Worker };
94*cda5da8dSAndroid Build Coastguard Worker struct siw_rqe {
95*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 id;
96*cda5da8dSAndroid Build Coastguard Worker   __u16 flags;
97*cda5da8dSAndroid Build Coastguard Worker   __u8 num_sge;
98*cda5da8dSAndroid Build Coastguard Worker   __u8 opcode;
99*cda5da8dSAndroid Build Coastguard Worker   __u32 unused;
100*cda5da8dSAndroid Build Coastguard Worker   struct siw_sge sge[SIW_MAX_SGE];
101*cda5da8dSAndroid Build Coastguard Worker };
102*cda5da8dSAndroid Build Coastguard Worker enum siw_notify_flags {
103*cda5da8dSAndroid Build Coastguard Worker   SIW_NOTIFY_NOT = (0),
104*cda5da8dSAndroid Build Coastguard Worker   SIW_NOTIFY_SOLICITED = (1 << 0),
105*cda5da8dSAndroid Build Coastguard Worker   SIW_NOTIFY_NEXT_COMPLETION = (1 << 1),
106*cda5da8dSAndroid Build Coastguard Worker   SIW_NOTIFY_MISSED_EVENTS = (1 << 2),
107*cda5da8dSAndroid Build Coastguard Worker   SIW_NOTIFY_ALL = SIW_NOTIFY_SOLICITED | SIW_NOTIFY_NEXT_COMPLETION | SIW_NOTIFY_MISSED_EVENTS
108*cda5da8dSAndroid Build Coastguard Worker };
109*cda5da8dSAndroid Build Coastguard Worker enum siw_wc_status {
110*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_SUCCESS,
111*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_LOC_LEN_ERR,
112*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_LOC_PROT_ERR,
113*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_LOC_QP_OP_ERR,
114*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_WR_FLUSH_ERR,
115*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_BAD_RESP_ERR,
116*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_LOC_ACCESS_ERR,
117*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_REM_ACCESS_ERR,
118*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_REM_INV_REQ_ERR,
119*cda5da8dSAndroid Build Coastguard Worker   SIW_WC_GENERAL_ERR,
120*cda5da8dSAndroid Build Coastguard Worker   SIW_NUM_WC_STATUS
121*cda5da8dSAndroid Build Coastguard Worker };
122*cda5da8dSAndroid Build Coastguard Worker struct siw_cqe {
123*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 id;
124*cda5da8dSAndroid Build Coastguard Worker   __u8 flags;
125*cda5da8dSAndroid Build Coastguard Worker   __u8 opcode;
126*cda5da8dSAndroid Build Coastguard Worker   __u16 status;
127*cda5da8dSAndroid Build Coastguard Worker   __u32 bytes;
128*cda5da8dSAndroid Build Coastguard Worker   union {
129*cda5da8dSAndroid Build Coastguard Worker     __aligned_u64 imm_data;
130*cda5da8dSAndroid Build Coastguard Worker     __u32 inval_stag;
131*cda5da8dSAndroid Build Coastguard Worker   };
132*cda5da8dSAndroid Build Coastguard Worker   union {
133*cda5da8dSAndroid Build Coastguard Worker     struct ib_qp * base_qp;
134*cda5da8dSAndroid Build Coastguard Worker     __aligned_u64 qp_id;
135*cda5da8dSAndroid Build Coastguard Worker   };
136*cda5da8dSAndroid Build Coastguard Worker };
137*cda5da8dSAndroid Build Coastguard Worker struct siw_cq_ctrl {
138*cda5da8dSAndroid Build Coastguard Worker   __u32 flags;
139*cda5da8dSAndroid Build Coastguard Worker   __u32 pad;
140*cda5da8dSAndroid Build Coastguard Worker };
141*cda5da8dSAndroid Build Coastguard Worker #endif
142