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_CM_H 20 #define IB_USER_CM_H 21 #include <linux/types.h> 22 #include <rdma/ib_user_sa.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #define IB_USER_CM_ABI_VERSION 5 25 enum { 26 IB_USER_CM_CMD_CREATE_ID, 27 IB_USER_CM_CMD_DESTROY_ID, 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 IB_USER_CM_CMD_ATTR_ID, 30 IB_USER_CM_CMD_LISTEN, 31 IB_USER_CM_CMD_NOTIFY, 32 IB_USER_CM_CMD_SEND_REQ, 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 IB_USER_CM_CMD_SEND_REP, 35 IB_USER_CM_CMD_SEND_RTU, 36 IB_USER_CM_CMD_SEND_DREQ, 37 IB_USER_CM_CMD_SEND_DREP, 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 IB_USER_CM_CMD_SEND_REJ, 40 IB_USER_CM_CMD_SEND_MRA, 41 IB_USER_CM_CMD_SEND_LAP, 42 IB_USER_CM_CMD_SEND_APR, 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 IB_USER_CM_CMD_SEND_SIDR_REQ, 45 IB_USER_CM_CMD_SEND_SIDR_REP, 46 IB_USER_CM_CMD_EVENT, 47 IB_USER_CM_CMD_INIT_QP_ATTR, 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 }; 50 struct ib_ucm_cmd_hdr { 51 __u32 cmd; 52 __u16 in; 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 __u16 out; 55 }; 56 struct ib_ucm_create_id { 57 __u64 uid; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 __u64 response; 60 }; 61 struct ib_ucm_create_id_resp { 62 __u32 id; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 }; 65 struct ib_ucm_destroy_id { 66 __u64 response; 67 __u32 id; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 __u32 reserved; 70 }; 71 struct ib_ucm_destroy_id_resp { 72 __u32 events_reported; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 }; 75 struct ib_ucm_attr_id { 76 __u64 response; 77 __u32 id; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 __u32 reserved; 80 }; 81 struct ib_ucm_attr_id_resp { 82 __be64 service_id; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 __be64 service_mask; 85 __be32 local_id; 86 __be32 remote_id; 87 }; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 struct ib_ucm_init_qp_attr { 90 __u64 response; 91 __u32 id; 92 __u32 qp_state; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 }; 95 struct ib_ucm_listen { 96 __be64 service_id; 97 __be64 service_mask; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 __u32 id; 100 __u32 reserved; 101 }; 102 struct ib_ucm_notify { 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 __u32 id; 105 __u32 event; 106 }; 107 struct ib_ucm_private_data { 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 __u64 data; 110 __u32 id; 111 __u8 len; 112 __u8 reserved[3]; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 }; 115 struct ib_ucm_req { 116 __u32 id; 117 __u32 qpn; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 __u32 qp_type; 120 __u32 psn; 121 __be64 sid; 122 __u64 data; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 __u64 primary_path; 125 __u64 alternate_path; 126 __u8 len; 127 __u8 peer_to_peer; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 __u8 responder_resources; 130 __u8 initiator_depth; 131 __u8 remote_cm_response_timeout; 132 __u8 flow_control; 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 __u8 local_cm_response_timeout; 135 __u8 retry_count; 136 __u8 rnr_retry_count; 137 __u8 max_cm_retries; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 __u8 srq; 140 __u8 reserved[5]; 141 }; 142 struct ib_ucm_rep { 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u64 uid; 145 __u64 data; 146 __u32 id; 147 __u32 qpn; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u32 psn; 150 __u8 len; 151 __u8 responder_resources; 152 __u8 initiator_depth; 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u8 target_ack_delay; 155 __u8 failover_accepted; 156 __u8 flow_control; 157 __u8 rnr_retry_count; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 __u8 srq; 160 __u8 reserved[4]; 161 }; 162 struct ib_ucm_info { 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 __u32 id; 165 __u32 status; 166 __u64 info; 167 __u64 data; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 __u8 info_len; 170 __u8 data_len; 171 __u8 reserved[6]; 172 }; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 struct ib_ucm_mra { 175 __u64 data; 176 __u32 id; 177 __u8 len; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __u8 timeout; 180 __u8 reserved[2]; 181 }; 182 struct ib_ucm_lap { 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 __u64 path; 185 __u64 data; 186 __u32 id; 187 __u8 len; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 __u8 reserved[3]; 190 }; 191 struct ib_ucm_sidr_req { 192 __u32 id; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 __u32 timeout; 195 __be64 sid; 196 __u64 data; 197 __u64 path; 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 __u16 reserved_pkey; 200 __u8 len; 201 __u8 max_cm_retries; 202 __u8 reserved[4]; 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 }; 205 struct ib_ucm_sidr_rep { 206 __u32 id; 207 __u32 qpn; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 __u32 qkey; 210 __u32 status; 211 __u64 info; 212 __u64 data; 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 __u8 info_len; 215 __u8 data_len; 216 __u8 reserved[6]; 217 }; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 struct ib_ucm_event_get { 220 __u64 response; 221 __u64 data; 222 __u64 info; 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 __u8 data_len; 225 __u8 info_len; 226 __u8 reserved[6]; 227 }; 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 struct ib_ucm_req_event_resp { 230 struct ib_user_path_rec primary_path; 231 struct ib_user_path_rec alternate_path; 232 __be64 remote_ca_guid; 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 __u32 remote_qkey; 235 __u32 remote_qpn; 236 __u32 qp_type; 237 __u32 starting_psn; 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 __u8 responder_resources; 240 __u8 initiator_depth; 241 __u8 local_cm_response_timeout; 242 __u8 flow_control; 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 __u8 remote_cm_response_timeout; 245 __u8 retry_count; 246 __u8 rnr_retry_count; 247 __u8 srq; 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 __u8 port; 250 __u8 reserved[7]; 251 }; 252 struct ib_ucm_rep_event_resp { 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 __be64 remote_ca_guid; 255 __u32 remote_qkey; 256 __u32 remote_qpn; 257 __u32 starting_psn; 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 __u8 responder_resources; 260 __u8 initiator_depth; 261 __u8 target_ack_delay; 262 __u8 failover_accepted; 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 __u8 flow_control; 265 __u8 rnr_retry_count; 266 __u8 srq; 267 __u8 reserved[5]; 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 }; 270 struct ib_ucm_rej_event_resp { 271 __u32 reason; 272 }; 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274 struct ib_ucm_mra_event_resp { 275 __u8 timeout; 276 __u8 reserved[3]; 277 }; 278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279 struct ib_ucm_lap_event_resp { 280 struct ib_user_path_rec path; 281 }; 282 struct ib_ucm_apr_event_resp { 283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284 __u32 status; 285 }; 286 struct ib_ucm_sidr_req_event_resp { 287 __u16 pkey; 288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289 __u8 port; 290 __u8 reserved; 291 }; 292 struct ib_ucm_sidr_rep_event_resp { 293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294 __u32 status; 295 __u32 qkey; 296 __u32 qpn; 297 }; 298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299 #define IB_UCM_PRES_DATA 0x01 300 #define IB_UCM_PRES_INFO 0x02 301 #define IB_UCM_PRES_PRIMARY 0x04 302 #define IB_UCM_PRES_ALTERNATE 0x08 303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304 struct ib_ucm_event_resp { 305 __u64 uid; 306 __u32 id; 307 __u32 event; 308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309 __u32 present; 310 __u32 reserved; 311 union { 312 struct ib_ucm_req_event_resp req_resp; 313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 314 struct ib_ucm_rep_event_resp rep_resp; 315 struct ib_ucm_rej_event_resp rej_resp; 316 struct ib_ucm_mra_event_resp mra_resp; 317 struct ib_ucm_lap_event_resp lap_resp; 318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 319 struct ib_ucm_apr_event_resp apr_resp; 320 struct ib_ucm_sidr_req_event_resp sidr_req_resp; 321 struct ib_ucm_sidr_rep_event_resp sidr_rep_resp; 322 __u32 send_status; 323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 324 } u; 325 }; 326 #endif 327