diff --git a/libc/kernel/uapi/rdma/ib_user_cm.h b/libc/kernel/uapi/rdma/ib_user_cm.h
index 0a9ff26..c475ffc 100644
--- a/libc/kernel/uapi/rdma/ib_user_cm.h
+++ b/libc/kernel/uapi/rdma/ib_user_cm.h
@@ -23,277 +23,277 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IB_USER_CM_ABI_VERSION 5
 enum {
- IB_USER_CM_CMD_CREATE_ID,
- IB_USER_CM_CMD_DESTROY_ID,
+  IB_USER_CM_CMD_CREATE_ID,
+  IB_USER_CM_CMD_DESTROY_ID,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_CM_CMD_ATTR_ID,
- IB_USER_CM_CMD_LISTEN,
- IB_USER_CM_CMD_NOTIFY,
- IB_USER_CM_CMD_SEND_REQ,
+  IB_USER_CM_CMD_ATTR_ID,
+  IB_USER_CM_CMD_LISTEN,
+  IB_USER_CM_CMD_NOTIFY,
+  IB_USER_CM_CMD_SEND_REQ,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_CM_CMD_SEND_REP,
- IB_USER_CM_CMD_SEND_RTU,
- IB_USER_CM_CMD_SEND_DREQ,
- IB_USER_CM_CMD_SEND_DREP,
+  IB_USER_CM_CMD_SEND_REP,
+  IB_USER_CM_CMD_SEND_RTU,
+  IB_USER_CM_CMD_SEND_DREQ,
+  IB_USER_CM_CMD_SEND_DREP,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_CM_CMD_SEND_REJ,
- IB_USER_CM_CMD_SEND_MRA,
- IB_USER_CM_CMD_SEND_LAP,
- IB_USER_CM_CMD_SEND_APR,
+  IB_USER_CM_CMD_SEND_REJ,
+  IB_USER_CM_CMD_SEND_MRA,
+  IB_USER_CM_CMD_SEND_LAP,
+  IB_USER_CM_CMD_SEND_APR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_CM_CMD_SEND_SIDR_REQ,
- IB_USER_CM_CMD_SEND_SIDR_REP,
- IB_USER_CM_CMD_EVENT,
- IB_USER_CM_CMD_INIT_QP_ATTR,
+  IB_USER_CM_CMD_SEND_SIDR_REQ,
+  IB_USER_CM_CMD_SEND_SIDR_REP,
+  IB_USER_CM_CMD_EVENT,
+  IB_USER_CM_CMD_INIT_QP_ATTR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_cmd_hdr {
- __u32 cmd;
- __u16 in;
+  __u32 cmd;
+  __u16 in;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 out;
+  __u16 out;
 };
 struct ib_ucm_create_id {
- __u64 uid;
+  __u64 uid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
+  __u64 response;
 };
 struct ib_ucm_create_id_resp {
- __u32 id;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_destroy_id {
- __u64 response;
- __u32 id;
+  __u64 response;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
+  __u32 reserved;
 };
 struct ib_ucm_destroy_id_resp {
- __u32 events_reported;
+  __u32 events_reported;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_attr_id {
- __u64 response;
- __u32 id;
+  __u64 response;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
+  __u32 reserved;
 };
 struct ib_ucm_attr_id_resp {
- __be64 service_id;
+  __be64 service_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be64 service_mask;
- __be32 local_id;
- __be32 remote_id;
+  __be64 service_mask;
+  __be32 local_id;
+  __be32 remote_id;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_init_qp_attr {
- __u64 response;
- __u32 id;
- __u32 qp_state;
+  __u64 response;
+  __u32 id;
+  __u32 qp_state;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_listen {
- __be64 service_id;
- __be64 service_mask;
+  __be64 service_id;
+  __be64 service_mask;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 reserved;
+  __u32 id;
+  __u32 reserved;
 };
 struct ib_ucm_notify {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 event;
+  __u32 id;
+  __u32 event;
 };
 struct ib_ucm_private_data {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 data;
- __u32 id;
- __u8 len;
- __u8 reserved[3];
+  __u64 data;
+  __u32 id;
+  __u8 len;
+  __u8 reserved[3];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_req {
- __u32 id;
- __u32 qpn;
+  __u32 id;
+  __u32 qpn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qp_type;
- __u32 psn;
- __be64 sid;
- __u64 data;
+  __u32 qp_type;
+  __u32 psn;
+  __be64 sid;
+  __u64 data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 primary_path;
- __u64 alternate_path;
- __u8 len;
- __u8 peer_to_peer;
+  __u64 primary_path;
+  __u64 alternate_path;
+  __u8 len;
+  __u8 peer_to_peer;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 remote_cm_response_timeout;
- __u8 flow_control;
+  __u8 responder_resources;
+  __u8 initiator_depth;
+  __u8 remote_cm_response_timeout;
+  __u8 flow_control;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 local_cm_response_timeout;
- __u8 retry_count;
- __u8 rnr_retry_count;
- __u8 max_cm_retries;
+  __u8 local_cm_response_timeout;
+  __u8 retry_count;
+  __u8 rnr_retry_count;
+  __u8 max_cm_retries;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 srq;
- __u8 reserved[5];
+  __u8 srq;
+  __u8 reserved[5];
 };
 struct ib_ucm_rep {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 uid;
- __u64 data;
- __u32 id;
- __u32 qpn;
+  __u64 uid;
+  __u64 data;
+  __u32 id;
+  __u32 qpn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 psn;
- __u8 len;
- __u8 responder_resources;
- __u8 initiator_depth;
+  __u32 psn;
+  __u8 len;
+  __u8 responder_resources;
+  __u8 initiator_depth;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 target_ack_delay;
- __u8 failover_accepted;
- __u8 flow_control;
- __u8 rnr_retry_count;
+  __u8 target_ack_delay;
+  __u8 failover_accepted;
+  __u8 flow_control;
+  __u8 rnr_retry_count;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 srq;
- __u8 reserved[4];
+  __u8 srq;
+  __u8 reserved[4];
 };
 struct ib_ucm_info {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 status;
- __u64 info;
- __u64 data;
+  __u32 id;
+  __u32 status;
+  __u64 info;
+  __u64 data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 info_len;
- __u8 data_len;
- __u8 reserved[6];
+  __u8 info_len;
+  __u8 data_len;
+  __u8 reserved[6];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_mra {
- __u64 data;
- __u32 id;
- __u8 len;
+  __u64 data;
+  __u32 id;
+  __u8 len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 timeout;
- __u8 reserved[2];
+  __u8 timeout;
+  __u8 reserved[2];
 };
 struct ib_ucm_lap {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 path;
- __u64 data;
- __u32 id;
- __u8 len;
+  __u64 path;
+  __u64 data;
+  __u32 id;
+  __u8 len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[3];
+  __u8 reserved[3];
 };
 struct ib_ucm_sidr_req {
- __u32 id;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 timeout;
- __be64 sid;
- __u64 data;
- __u64 path;
+  __u32 timeout;
+  __be64 sid;
+  __u64 data;
+  __u64 path;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 reserved_pkey;
- __u8 len;
- __u8 max_cm_retries;
- __u8 reserved[4];
+  __u16 reserved_pkey;
+  __u8 len;
+  __u8 max_cm_retries;
+  __u8 reserved[4];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_sidr_rep {
- __u32 id;
- __u32 qpn;
+  __u32 id;
+  __u32 qpn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qkey;
- __u32 status;
- __u64 info;
- __u64 data;
+  __u32 qkey;
+  __u32 status;
+  __u64 info;
+  __u64 data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 info_len;
- __u8 data_len;
- __u8 reserved[6];
+  __u8 info_len;
+  __u8 data_len;
+  __u8 reserved[6];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_event_get {
- __u64 response;
- __u64 data;
- __u64 info;
+  __u64 response;
+  __u64 data;
+  __u64 info;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 data_len;
- __u8 info_len;
- __u8 reserved[6];
+  __u8 data_len;
+  __u8 info_len;
+  __u8 reserved[6];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_req_event_resp {
- struct ib_user_path_rec primary_path;
- struct ib_user_path_rec alternate_path;
- __be64 remote_ca_guid;
+  struct ib_user_path_rec primary_path;
+  struct ib_user_path_rec alternate_path;
+  __be64 remote_ca_guid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 remote_qkey;
- __u32 remote_qpn;
- __u32 qp_type;
- __u32 starting_psn;
+  __u32 remote_qkey;
+  __u32 remote_qpn;
+  __u32 qp_type;
+  __u32 starting_psn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 local_cm_response_timeout;
- __u8 flow_control;
+  __u8 responder_resources;
+  __u8 initiator_depth;
+  __u8 local_cm_response_timeout;
+  __u8 flow_control;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 remote_cm_response_timeout;
- __u8 retry_count;
- __u8 rnr_retry_count;
- __u8 srq;
+  __u8 remote_cm_response_timeout;
+  __u8 retry_count;
+  __u8 rnr_retry_count;
+  __u8 srq;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 port;
- __u8 reserved[7];
+  __u8 port;
+  __u8 reserved[7];
 };
 struct ib_ucm_rep_event_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be64 remote_ca_guid;
- __u32 remote_qkey;
- __u32 remote_qpn;
- __u32 starting_psn;
+  __be64 remote_ca_guid;
+  __u32 remote_qkey;
+  __u32 remote_qpn;
+  __u32 starting_psn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 target_ack_delay;
- __u8 failover_accepted;
+  __u8 responder_resources;
+  __u8 initiator_depth;
+  __u8 target_ack_delay;
+  __u8 failover_accepted;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 flow_control;
- __u8 rnr_retry_count;
- __u8 srq;
- __u8 reserved[5];
+  __u8 flow_control;
+  __u8 rnr_retry_count;
+  __u8 srq;
+  __u8 reserved[5];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_ucm_rej_event_resp {
- __u32 reason;
+  __u32 reason;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_mra_event_resp {
- __u8 timeout;
- __u8 reserved[3];
+  __u8 timeout;
+  __u8 reserved[3];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_lap_event_resp {
- struct ib_user_path_rec path;
+  struct ib_user_path_rec path;
 };
 struct ib_ucm_apr_event_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 status;
+  __u32 status;
 };
 struct ib_ucm_sidr_req_event_resp {
- __u16 pkey;
+  __u16 pkey;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 port;
- __u8 reserved;
+  __u8 port;
+  __u8 reserved;
 };
 struct ib_ucm_sidr_rep_event_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 status;
- __u32 qkey;
- __u32 qpn;
+  __u32 status;
+  __u32 qkey;
+  __u32 qpn;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IB_UCM_PRES_DATA 0x01
@@ -302,25 +302,25 @@
 #define IB_UCM_PRES_ALTERNATE 0x08
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_ucm_event_resp {
- __u64 uid;
- __u32 id;
- __u32 event;
+  __u64 uid;
+  __u32 id;
+  __u32 event;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 present;
- __u32 reserved;
- union {
- struct ib_ucm_req_event_resp req_resp;
+  __u32 present;
+  __u32 reserved;
+  union {
+    struct ib_ucm_req_event_resp req_resp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_ucm_rep_event_resp rep_resp;
- struct ib_ucm_rej_event_resp rej_resp;
- struct ib_ucm_mra_event_resp mra_resp;
- struct ib_ucm_lap_event_resp lap_resp;
+    struct ib_ucm_rep_event_resp rep_resp;
+    struct ib_ucm_rej_event_resp rej_resp;
+    struct ib_ucm_mra_event_resp mra_resp;
+    struct ib_ucm_lap_event_resp lap_resp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_ucm_apr_event_resp apr_resp;
- struct ib_ucm_sidr_req_event_resp sidr_req_resp;
- struct ib_ucm_sidr_rep_event_resp sidr_rep_resp;
- __u32 send_status;
+    struct ib_ucm_apr_event_resp apr_resp;
+    struct ib_ucm_sidr_req_event_resp sidr_req_resp;
+    struct ib_ucm_sidr_rep_event_resp sidr_rep_resp;
+    __u32 send_status;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } u;
+  } u;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/ib_user_mad.h b/libc/kernel/uapi/rdma/ib_user_mad.h
index 932c5cf..3117888 100644
--- a/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -23,96 +23,96 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IB_USER_MAD_ABI_VERSION 5
 struct ib_user_mad_hdr_old {
- __u32 id;
- __u32 status;
+  __u32 id;
+  __u32 status;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 timeout_ms;
- __u32 retries;
- __u32 length;
- __be32 qpn;
+  __u32 timeout_ms;
+  __u32 retries;
+  __u32 length;
+  __be32 qpn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be32 qkey;
- __be16 lid;
- __u8 sl;
- __u8 path_bits;
+  __be32 qkey;
+  __be16 lid;
+  __u8 sl;
+  __u8 path_bits;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 grh_present;
- __u8 gid_index;
- __u8 hop_limit;
- __u8 traffic_class;
+  __u8 grh_present;
+  __u8 gid_index;
+  __u8 hop_limit;
+  __u8 traffic_class;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 gid[16];
- __be32 flow_label;
+  __u8 gid[16];
+  __be32 flow_label;
 };
 struct ib_user_mad_hdr {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 status;
- __u32 timeout_ms;
- __u32 retries;
+  __u32 id;
+  __u32 status;
+  __u32 timeout_ms;
+  __u32 retries;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 length;
- __be32 qpn;
- __be32 qkey;
- __be16 lid;
+  __u32 length;
+  __be32 qpn;
+  __be32 qkey;
+  __be16 lid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 sl;
- __u8 path_bits;
- __u8 grh_present;
- __u8 gid_index;
+  __u8 sl;
+  __u8 path_bits;
+  __u8 grh_present;
+  __u8 gid_index;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 gid[16];
- __be32 flow_label;
+  __u8 hop_limit;
+  __u8 traffic_class;
+  __u8 gid[16];
+  __be32 flow_label;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 pkey_index;
- __u8 reserved[6];
+  __u16 pkey_index;
+  __u8 reserved[6];
 };
 struct ib_user_mad {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_user_mad_hdr hdr;
- __u64 data[0];
+  struct ib_user_mad_hdr hdr;
+  __u64 data[0];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof (long)))
+#define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
 struct ib_user_mad_reg_req {
- __u32 id;
- packed_ulong method_mask[IB_USER_MAD_LONGS_PER_METHOD_MASK];
+  __u32 id;
+  packed_ulong method_mask[IB_USER_MAD_LONGS_PER_METHOD_MASK];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 qpn;
- __u8 mgmt_class;
- __u8 mgmt_class_version;
- __u8 oui[3];
+  __u8 qpn;
+  __u8 mgmt_class;
+  __u8 mgmt_class_version;
+  __u8 oui[3];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 rmpp_version;
+  __u8 rmpp_version;
 };
 enum {
- IB_USER_MAD_USER_RMPP = (1 << 0),
+  IB_USER_MAD_USER_RMPP = (1 << 0),
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define IB_USER_MAD_REG_FLAGS_CAP (IB_USER_MAD_USER_RMPP)
 struct ib_user_mad_reg_req2 {
- __u32 id;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qpn;
- __u8 mgmt_class;
- __u8 mgmt_class_version;
- __u16 res;
+  __u32 qpn;
+  __u8 mgmt_class;
+  __u8 mgmt_class_version;
+  __u16 res;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 flags;
- __u64 method_mask[2];
- __u32 oui;
- __u8 rmpp_version;
+  __u32 flags;
+  __u64 method_mask[2];
+  __u32 oui;
+  __u8 rmpp_version;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[3];
+  __u8 reserved[3];
 };
 #define IB_IOCTL_MAGIC 0x1b
-#define IB_USER_MAD_REGISTER_AGENT _IOWR(IB_IOCTL_MAGIC, 1,   struct ib_user_mad_reg_req)
+#define IB_USER_MAD_REGISTER_AGENT _IOWR(IB_IOCTL_MAGIC, 1, struct ib_user_mad_reg_req)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IB_USER_MAD_UNREGISTER_AGENT _IOW(IB_IOCTL_MAGIC, 2, __u32)
 #define IB_USER_MAD_ENABLE_PKEY _IO(IB_IOCTL_MAGIC, 3)
-#define IB_USER_MAD_REGISTER_AGENT2 _IOWR(IB_IOCTL_MAGIC, 4,   struct ib_user_mad_reg_req2)
+#define IB_USER_MAD_REGISTER_AGENT2 _IOWR(IB_IOCTL_MAGIC, 4, struct ib_user_mad_reg_req2)
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/libc/kernel/uapi/rdma/ib_user_sa.h b/libc/kernel/uapi/rdma/ib_user_sa.h
index de5df89..36f4a80 100644
--- a/libc/kernel/uapi/rdma/ib_user_sa.h
+++ b/libc/kernel/uapi/rdma/ib_user_sa.h
@@ -21,46 +21,46 @@
 #include <linux/types.h>
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_PATH_GMP = 1,
- IB_PATH_PRIMARY = (1<<1),
- IB_PATH_ALTERNATE = (1<<2),
- IB_PATH_OUTBOUND = (1<<3),
+  IB_PATH_GMP = 1,
+  IB_PATH_PRIMARY = (1 << 1),
+  IB_PATH_ALTERNATE = (1 << 2),
+  IB_PATH_OUTBOUND = (1 << 3),
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_PATH_INBOUND = (1<<4),
- IB_PATH_INBOUND_REVERSE = (1<<5),
- IB_PATH_BIDIRECTIONAL = IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE
+  IB_PATH_INBOUND = (1 << 4),
+  IB_PATH_INBOUND_REVERSE = (1 << 5),
+  IB_PATH_BIDIRECTIONAL = IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_path_rec_data {
- __u32 flags;
- __u32 reserved;
- __u32 path_rec[16];
+  __u32 flags;
+  __u32 reserved;
+  __u32 path_rec[16];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_user_path_rec {
- __u8 dgid[16];
- __u8 sgid[16];
+  __u8 dgid[16];
+  __u8 sgid[16];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be16 dlid;
- __be16 slid;
- __u32 raw_traffic;
- __be32 flow_label;
+  __be16 dlid;
+  __be16 slid;
+  __u32 raw_traffic;
+  __be32 flow_label;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reversible;
- __u32 mtu;
- __be16 pkey;
- __u8 hop_limit;
+  __u32 reversible;
+  __u32 mtu;
+  __be16 pkey;
+  __u8 hop_limit;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 traffic_class;
- __u8 numb_path;
- __u8 sl;
- __u8 mtu_selector;
+  __u8 traffic_class;
+  __u8 numb_path;
+  __u8 sl;
+  __u8 mtu_selector;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 rate_selector;
- __u8 rate;
- __u8 packet_life_time_selector;
- __u8 packet_life_time;
+  __u8 rate_selector;
+  __u8 rate;
+  __u8 packet_life_time_selector;
+  __u8 packet_life_time;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 preference;
+  __u8 preference;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index c0d648f..9c23ac2 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -23,72 +23,72 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IB_USER_VERBS_CMD_THRESHOLD 50
 enum {
- IB_USER_VERBS_CMD_GET_CONTEXT,
- IB_USER_VERBS_CMD_QUERY_DEVICE,
+  IB_USER_VERBS_CMD_GET_CONTEXT,
+  IB_USER_VERBS_CMD_QUERY_DEVICE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_QUERY_PORT,
- IB_USER_VERBS_CMD_ALLOC_PD,
- IB_USER_VERBS_CMD_DEALLOC_PD,
- IB_USER_VERBS_CMD_CREATE_AH,
+  IB_USER_VERBS_CMD_QUERY_PORT,
+  IB_USER_VERBS_CMD_ALLOC_PD,
+  IB_USER_VERBS_CMD_DEALLOC_PD,
+  IB_USER_VERBS_CMD_CREATE_AH,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_MODIFY_AH,
- IB_USER_VERBS_CMD_QUERY_AH,
- IB_USER_VERBS_CMD_DESTROY_AH,
- IB_USER_VERBS_CMD_REG_MR,
+  IB_USER_VERBS_CMD_MODIFY_AH,
+  IB_USER_VERBS_CMD_QUERY_AH,
+  IB_USER_VERBS_CMD_DESTROY_AH,
+  IB_USER_VERBS_CMD_REG_MR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_REG_SMR,
- IB_USER_VERBS_CMD_REREG_MR,
- IB_USER_VERBS_CMD_QUERY_MR,
- IB_USER_VERBS_CMD_DEREG_MR,
+  IB_USER_VERBS_CMD_REG_SMR,
+  IB_USER_VERBS_CMD_REREG_MR,
+  IB_USER_VERBS_CMD_QUERY_MR,
+  IB_USER_VERBS_CMD_DEREG_MR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_ALLOC_MW,
- IB_USER_VERBS_CMD_BIND_MW,
- IB_USER_VERBS_CMD_DEALLOC_MW,
- IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL,
+  IB_USER_VERBS_CMD_ALLOC_MW,
+  IB_USER_VERBS_CMD_BIND_MW,
+  IB_USER_VERBS_CMD_DEALLOC_MW,
+  IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_CREATE_CQ,
- IB_USER_VERBS_CMD_RESIZE_CQ,
- IB_USER_VERBS_CMD_DESTROY_CQ,
- IB_USER_VERBS_CMD_POLL_CQ,
+  IB_USER_VERBS_CMD_CREATE_CQ,
+  IB_USER_VERBS_CMD_RESIZE_CQ,
+  IB_USER_VERBS_CMD_DESTROY_CQ,
+  IB_USER_VERBS_CMD_POLL_CQ,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_PEEK_CQ,
- IB_USER_VERBS_CMD_REQ_NOTIFY_CQ,
- IB_USER_VERBS_CMD_CREATE_QP,
- IB_USER_VERBS_CMD_QUERY_QP,
+  IB_USER_VERBS_CMD_PEEK_CQ,
+  IB_USER_VERBS_CMD_REQ_NOTIFY_CQ,
+  IB_USER_VERBS_CMD_CREATE_QP,
+  IB_USER_VERBS_CMD_QUERY_QP,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_MODIFY_QP,
- IB_USER_VERBS_CMD_DESTROY_QP,
- IB_USER_VERBS_CMD_POST_SEND,
- IB_USER_VERBS_CMD_POST_RECV,
+  IB_USER_VERBS_CMD_MODIFY_QP,
+  IB_USER_VERBS_CMD_DESTROY_QP,
+  IB_USER_VERBS_CMD_POST_SEND,
+  IB_USER_VERBS_CMD_POST_RECV,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_ATTACH_MCAST,
- IB_USER_VERBS_CMD_DETACH_MCAST,
- IB_USER_VERBS_CMD_CREATE_SRQ,
- IB_USER_VERBS_CMD_MODIFY_SRQ,
+  IB_USER_VERBS_CMD_ATTACH_MCAST,
+  IB_USER_VERBS_CMD_DETACH_MCAST,
+  IB_USER_VERBS_CMD_CREATE_SRQ,
+  IB_USER_VERBS_CMD_MODIFY_SRQ,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_QUERY_SRQ,
- IB_USER_VERBS_CMD_DESTROY_SRQ,
- IB_USER_VERBS_CMD_POST_SRQ_RECV,
- IB_USER_VERBS_CMD_OPEN_XRCD,
+  IB_USER_VERBS_CMD_QUERY_SRQ,
+  IB_USER_VERBS_CMD_DESTROY_SRQ,
+  IB_USER_VERBS_CMD_POST_SRQ_RECV,
+  IB_USER_VERBS_CMD_OPEN_XRCD,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IB_USER_VERBS_CMD_CLOSE_XRCD,
- IB_USER_VERBS_CMD_CREATE_XSRQ,
- IB_USER_VERBS_CMD_OPEN_QP,
+  IB_USER_VERBS_CMD_CLOSE_XRCD,
+  IB_USER_VERBS_CMD_CREATE_XSRQ,
+  IB_USER_VERBS_CMD_OPEN_QP,
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum {
- IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
- IB_USER_VERBS_EX_CMD_DESTROY_FLOW
+  IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD,
+  IB_USER_VERBS_EX_CMD_DESTROY_FLOW
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_async_event_desc {
- __u64 element;
- __u32 event_type;
- __u32 reserved;
+  __u64 element;
+  __u32 event_type;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_comp_event_desc {
- __u64 cq_handle;
+  __u64 cq_handle;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
@@ -97,813 +97,813 @@
 #define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_cmd_hdr {
- __u32 command;
- __u16 in_words;
- __u16 out_words;
+  __u32 command;
+  __u16 in_words;
+  __u16 out_words;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_ex_cmd_hdr {
- __u64 response;
- __u16 provider_in_words;
+  __u64 response;
+  __u16 provider_in_words;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 provider_out_words;
- __u32 cmd_hdr_reserved;
+  __u16 provider_out_words;
+  __u32 cmd_hdr_reserved;
 };
 struct ib_uverbs_get_context {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 driver_data[0];
+  __u64 response;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_get_context_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 async_fd;
- __u32 num_comp_vectors;
+  __u32 async_fd;
+  __u32 num_comp_vectors;
 };
 struct ib_uverbs_query_device {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 driver_data[0];
+  __u64 response;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_query_device_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 fw_ver;
- __be64 node_guid;
- __be64 sys_image_guid;
- __u64 max_mr_size;
+  __u64 fw_ver;
+  __be64 node_guid;
+  __be64 sys_image_guid;
+  __u64 max_mr_size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 page_size_cap;
- __u32 vendor_id;
- __u32 vendor_part_id;
- __u32 hw_ver;
+  __u64 page_size_cap;
+  __u32 vendor_id;
+  __u32 vendor_part_id;
+  __u32 hw_ver;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_qp;
- __u32 max_qp_wr;
- __u32 device_cap_flags;
- __u32 max_sge;
+  __u32 max_qp;
+  __u32 max_qp_wr;
+  __u32 device_cap_flags;
+  __u32 max_sge;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_sge_rd;
- __u32 max_cq;
- __u32 max_cqe;
- __u32 max_mr;
+  __u32 max_sge_rd;
+  __u32 max_cq;
+  __u32 max_cqe;
+  __u32 max_mr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_pd;
- __u32 max_qp_rd_atom;
- __u32 max_ee_rd_atom;
- __u32 max_res_rd_atom;
+  __u32 max_pd;
+  __u32 max_qp_rd_atom;
+  __u32 max_ee_rd_atom;
+  __u32 max_res_rd_atom;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_qp_init_rd_atom;
- __u32 max_ee_init_rd_atom;
- __u32 atomic_cap;
- __u32 max_ee;
+  __u32 max_qp_init_rd_atom;
+  __u32 max_ee_init_rd_atom;
+  __u32 atomic_cap;
+  __u32 max_ee;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_rdd;
- __u32 max_mw;
- __u32 max_raw_ipv6_qp;
- __u32 max_raw_ethy_qp;
+  __u32 max_rdd;
+  __u32 max_mw;
+  __u32 max_raw_ipv6_qp;
+  __u32 max_raw_ethy_qp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_mcast_grp;
- __u32 max_mcast_qp_attach;
- __u32 max_total_mcast_qp_attach;
- __u32 max_ah;
+  __u32 max_mcast_grp;
+  __u32 max_mcast_qp_attach;
+  __u32 max_total_mcast_qp_attach;
+  __u32 max_ah;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_fmr;
- __u32 max_map_per_fmr;
- __u32 max_srq;
- __u32 max_srq_wr;
+  __u32 max_fmr;
+  __u32 max_map_per_fmr;
+  __u32 max_srq;
+  __u32 max_srq_wr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_srq_sge;
- __u16 max_pkeys;
- __u8 local_ca_ack_delay;
- __u8 phys_port_cnt;
+  __u32 max_srq_sge;
+  __u16 max_pkeys;
+  __u8 local_ca_ack_delay;
+  __u8 phys_port_cnt;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[4];
+  __u8 reserved[4];
 };
 struct ib_uverbs_query_port {
- __u64 response;
+  __u64 response;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 port_num;
- __u8 reserved[7];
- __u64 driver_data[0];
+  __u8 port_num;
+  __u8 reserved[7];
+  __u64 driver_data[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_query_port_resp {
- __u32 port_cap_flags;
- __u32 max_msg_sz;
- __u32 bad_pkey_cntr;
+  __u32 port_cap_flags;
+  __u32 max_msg_sz;
+  __u32 bad_pkey_cntr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qkey_viol_cntr;
- __u32 gid_tbl_len;
- __u16 pkey_tbl_len;
- __u16 lid;
+  __u32 qkey_viol_cntr;
+  __u32 gid_tbl_len;
+  __u16 pkey_tbl_len;
+  __u16 lid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 sm_lid;
- __u8 state;
- __u8 max_mtu;
- __u8 active_mtu;
+  __u16 sm_lid;
+  __u8 state;
+  __u8 max_mtu;
+  __u8 active_mtu;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 lmc;
- __u8 max_vl_num;
- __u8 sm_sl;
- __u8 subnet_timeout;
+  __u8 lmc;
+  __u8 max_vl_num;
+  __u8 sm_sl;
+  __u8 subnet_timeout;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 init_type_reply;
- __u8 active_width;
- __u8 active_speed;
- __u8 phys_state;
+  __u8 init_type_reply;
+  __u8 active_width;
+  __u8 active_speed;
+  __u8 phys_state;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 link_layer;
- __u8 reserved[2];
+  __u8 link_layer;
+  __u8 reserved[2];
 };
 struct ib_uverbs_alloc_pd {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 driver_data[0];
+  __u64 response;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_alloc_pd_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 pd_handle;
+  __u32 pd_handle;
 };
 struct ib_uverbs_dealloc_pd {
- __u32 pd_handle;
+  __u32 pd_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_open_xrcd {
- __u64 response;
- __u32 fd;
+  __u64 response;
+  __u32 fd;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 oflags;
- __u64 driver_data[0];
+  __u32 oflags;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_open_xrcd_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 xrcd_handle;
+  __u32 xrcd_handle;
 };
 struct ib_uverbs_close_xrcd {
- __u32 xrcd_handle;
+  __u32 xrcd_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_reg_mr {
- __u64 response;
- __u64 start;
+  __u64 response;
+  __u64 start;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 length;
- __u64 hca_va;
- __u32 pd_handle;
- __u32 access_flags;
+  __u64 length;
+  __u64 hca_va;
+  __u32 pd_handle;
+  __u32 access_flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 driver_data[0];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_reg_mr_resp {
- __u32 mr_handle;
+  __u32 mr_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 lkey;
- __u32 rkey;
+  __u32 lkey;
+  __u32 rkey;
 };
 struct ib_uverbs_rereg_mr {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u32 mr_handle;
- __u32 flags;
- __u64 start;
+  __u64 response;
+  __u32 mr_handle;
+  __u32 flags;
+  __u64 start;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 length;
- __u64 hca_va;
- __u32 pd_handle;
- __u32 access_flags;
+  __u64 length;
+  __u64 hca_va;
+  __u32 pd_handle;
+  __u32 access_flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_rereg_mr_resp {
- __u32 lkey;
- __u32 rkey;
+  __u32 lkey;
+  __u32 rkey;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_dereg_mr {
- __u32 mr_handle;
+  __u32 mr_handle;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_alloc_mw {
- __u64 response;
- __u32 pd_handle;
- __u8 mw_type;
+  __u64 response;
+  __u32 pd_handle;
+  __u8 mw_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[3];
+  __u8 reserved[3];
 };
 struct ib_uverbs_alloc_mw_resp {
- __u32 mw_handle;
+  __u32 mw_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 rkey;
+  __u32 rkey;
 };
 struct ib_uverbs_dealloc_mw {
- __u32 mw_handle;
+  __u32 mw_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_create_comp_channel {
- __u64 response;
+  __u64 response;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_create_comp_channel_resp {
- __u32 fd;
+  __u32 fd;
 };
 struct ib_uverbs_create_cq {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 user_handle;
- __u32 cqe;
- __u32 comp_vector;
+  __u64 response;
+  __u64 user_handle;
+  __u32 cqe;
+  __u32 comp_vector;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s32 comp_channel;
- __u32 reserved;
- __u64 driver_data[0];
+  __s32 comp_channel;
+  __u32 reserved;
+  __u64 driver_data[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_create_cq_resp {
- __u32 cq_handle;
- __u32 cqe;
+  __u32 cq_handle;
+  __u32 cqe;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_resize_cq {
- __u64 response;
- __u32 cq_handle;
- __u32 cqe;
+  __u64 response;
+  __u32 cq_handle;
+  __u32 cqe;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 driver_data[0];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_resize_cq_resp {
- __u32 cqe;
+  __u32 cqe;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
- __u64 driver_data[0];
+  __u32 reserved;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_poll_cq {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u32 cq_handle;
- __u32 ne;
+  __u64 response;
+  __u32 cq_handle;
+  __u32 ne;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_wc {
- __u64 wr_id;
- __u32 status;
- __u32 opcode;
+  __u64 wr_id;
+  __u32 status;
+  __u32 opcode;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 vendor_err;
- __u32 byte_len;
- union {
- __u32 imm_data;
+  __u32 vendor_err;
+  __u32 byte_len;
+  union {
+    __u32 imm_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 invalidate_rkey;
- } ex;
- __u32 qp_num;
- __u32 src_qp;
+    __u32 invalidate_rkey;
+  } ex;
+  __u32 qp_num;
+  __u32 src_qp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 wc_flags;
- __u16 pkey_index;
- __u16 slid;
- __u8 sl;
+  __u32 wc_flags;
+  __u16 pkey_index;
+  __u16 slid;
+  __u8 sl;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 dlid_path_bits;
- __u8 port_num;
- __u8 reserved;
+  __u8 dlid_path_bits;
+  __u8 port_num;
+  __u8 reserved;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_poll_cq_resp {
- __u32 count;
- __u32 reserved;
- struct ib_uverbs_wc wc[0];
+  __u32 count;
+  __u32 reserved;
+  struct ib_uverbs_wc wc[0];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_req_notify_cq {
- __u32 cq_handle;
- __u32 solicited_only;
+  __u32 cq_handle;
+  __u32 solicited_only;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_destroy_cq {
- __u64 response;
- __u32 cq_handle;
+  __u64 response;
+  __u32 cq_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
+  __u32 reserved;
 };
 struct ib_uverbs_destroy_cq_resp {
- __u32 comp_events_reported;
+  __u32 comp_events_reported;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 async_events_reported;
+  __u32 async_events_reported;
 };
 struct ib_uverbs_global_route {
- __u8 dgid[16];
+  __u8 dgid[16];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 flow_label;
- __u8 sgid_index;
- __u8 hop_limit;
- __u8 traffic_class;
+  __u32 flow_label;
+  __u8 sgid_index;
+  __u8 hop_limit;
+  __u8 traffic_class;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved;
+  __u8 reserved;
 };
 struct ib_uverbs_ah_attr {
- struct ib_uverbs_global_route grh;
+  struct ib_uverbs_global_route grh;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 dlid;
- __u8 sl;
- __u8 src_path_bits;
- __u8 static_rate;
+  __u16 dlid;
+  __u8 sl;
+  __u8 src_path_bits;
+  __u8 static_rate;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 is_global;
- __u8 port_num;
- __u8 reserved;
+  __u8 is_global;
+  __u8 port_num;
+  __u8 reserved;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_qp_attr {
- __u32 qp_attr_mask;
- __u32 qp_state;
- __u32 cur_qp_state;
+  __u32 qp_attr_mask;
+  __u32 qp_state;
+  __u32 cur_qp_state;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 path_mtu;
- __u32 path_mig_state;
- __u32 qkey;
- __u32 rq_psn;
+  __u32 path_mtu;
+  __u32 path_mig_state;
+  __u32 qkey;
+  __u32 rq_psn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sq_psn;
- __u32 dest_qp_num;
- __u32 qp_access_flags;
- struct ib_uverbs_ah_attr ah_attr;
+  __u32 sq_psn;
+  __u32 dest_qp_num;
+  __u32 qp_access_flags;
+  struct ib_uverbs_ah_attr ah_attr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_ah_attr alt_ah_attr;
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
+  struct ib_uverbs_ah_attr alt_ah_attr;
+  __u32 max_send_wr;
+  __u32 max_recv_wr;
+  __u32 max_send_sge;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_recv_sge;
- __u32 max_inline_data;
- __u16 pkey_index;
- __u16 alt_pkey_index;
+  __u32 max_recv_sge;
+  __u32 max_inline_data;
+  __u16 pkey_index;
+  __u16 alt_pkey_index;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 en_sqd_async_notify;
- __u8 sq_draining;
- __u8 max_rd_atomic;
- __u8 max_dest_rd_atomic;
+  __u8 en_sqd_async_notify;
+  __u8 sq_draining;
+  __u8 max_rd_atomic;
+  __u8 max_dest_rd_atomic;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 min_rnr_timer;
- __u8 port_num;
- __u8 timeout;
- __u8 retry_cnt;
+  __u8 min_rnr_timer;
+  __u8 port_num;
+  __u8 timeout;
+  __u8 retry_cnt;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 rnr_retry;
- __u8 alt_port_num;
- __u8 alt_timeout;
- __u8 reserved[5];
+  __u8 rnr_retry;
+  __u8 alt_port_num;
+  __u8 alt_timeout;
+  __u8 reserved[5];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_create_qp {
- __u64 response;
- __u64 user_handle;
+  __u64 response;
+  __u64 user_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 pd_handle;
- __u32 send_cq_handle;
- __u32 recv_cq_handle;
- __u32 srq_handle;
+  __u32 pd_handle;
+  __u32 send_cq_handle;
+  __u32 recv_cq_handle;
+  __u32 srq_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
+  __u32 max_send_wr;
+  __u32 max_recv_wr;
+  __u32 max_send_sge;
+  __u32 max_recv_sge;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_inline_data;
- __u8 sq_sig_all;
- __u8 qp_type;
- __u8 is_srq;
+  __u32 max_inline_data;
+  __u8 sq_sig_all;
+  __u8 qp_type;
+  __u8 is_srq;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved;
- __u64 driver_data[0];
+  __u8 reserved;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_open_qp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 user_handle;
- __u32 pd_handle;
- __u32 qpn;
+  __u64 response;
+  __u64 user_handle;
+  __u32 pd_handle;
+  __u32 qpn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 qp_type;
- __u8 reserved[7];
- __u64 driver_data[0];
+  __u8 qp_type;
+  __u8 reserved[7];
+  __u64 driver_data[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_create_qp_resp {
- __u32 qp_handle;
- __u32 qpn;
- __u32 max_send_wr;
+  __u32 qp_handle;
+  __u32 qpn;
+  __u32 max_send_wr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
- __u32 max_inline_data;
+  __u32 max_recv_wr;
+  __u32 max_send_sge;
+  __u32 max_recv_sge;
+  __u32 max_inline_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
+  __u32 reserved;
 };
 struct ib_uverbs_qp_dest {
- __u8 dgid[16];
+  __u8 dgid[16];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 flow_label;
- __u16 dlid;
- __u16 reserved;
- __u8 sgid_index;
+  __u32 flow_label;
+  __u16 dlid;
+  __u16 reserved;
+  __u8 sgid_index;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 sl;
- __u8 src_path_bits;
+  __u8 hop_limit;
+  __u8 traffic_class;
+  __u8 sl;
+  __u8 src_path_bits;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 static_rate;
- __u8 is_global;
- __u8 port_num;
+  __u8 static_rate;
+  __u8 is_global;
+  __u8 port_num;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_query_qp {
- __u64 response;
- __u32 qp_handle;
- __u32 attr_mask;
+  __u64 response;
+  __u32 qp_handle;
+  __u32 attr_mask;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 driver_data[0];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_query_qp_resp {
- struct ib_uverbs_qp_dest dest;
+  struct ib_uverbs_qp_dest dest;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_qp_dest alt_dest;
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
+  struct ib_uverbs_qp_dest alt_dest;
+  __u32 max_send_wr;
+  __u32 max_recv_wr;
+  __u32 max_send_sge;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_recv_sge;
- __u32 max_inline_data;
- __u32 qkey;
- __u32 rq_psn;
+  __u32 max_recv_sge;
+  __u32 max_inline_data;
+  __u32 qkey;
+  __u32 rq_psn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sq_psn;
- __u32 dest_qp_num;
- __u32 qp_access_flags;
- __u16 pkey_index;
+  __u32 sq_psn;
+  __u32 dest_qp_num;
+  __u32 qp_access_flags;
+  __u16 pkey_index;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 alt_pkey_index;
- __u8 qp_state;
- __u8 cur_qp_state;
- __u8 path_mtu;
+  __u16 alt_pkey_index;
+  __u8 qp_state;
+  __u8 cur_qp_state;
+  __u8 path_mtu;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 path_mig_state;
- __u8 sq_draining;
- __u8 max_rd_atomic;
- __u8 max_dest_rd_atomic;
+  __u8 path_mig_state;
+  __u8 sq_draining;
+  __u8 max_rd_atomic;
+  __u8 max_dest_rd_atomic;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 min_rnr_timer;
- __u8 port_num;
- __u8 timeout;
- __u8 retry_cnt;
+  __u8 min_rnr_timer;
+  __u8 port_num;
+  __u8 timeout;
+  __u8 retry_cnt;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 rnr_retry;
- __u8 alt_port_num;
- __u8 alt_timeout;
- __u8 sq_sig_all;
+  __u8 rnr_retry;
+  __u8 alt_port_num;
+  __u8 alt_timeout;
+  __u8 sq_sig_all;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[5];
- __u64 driver_data[0];
+  __u8 reserved[5];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_modify_qp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_qp_dest dest;
- struct ib_uverbs_qp_dest alt_dest;
- __u32 qp_handle;
- __u32 attr_mask;
+  struct ib_uverbs_qp_dest dest;
+  struct ib_uverbs_qp_dest alt_dest;
+  __u32 qp_handle;
+  __u32 attr_mask;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qkey;
- __u32 rq_psn;
- __u32 sq_psn;
- __u32 dest_qp_num;
+  __u32 qkey;
+  __u32 rq_psn;
+  __u32 sq_psn;
+  __u32 dest_qp_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qp_access_flags;
- __u16 pkey_index;
- __u16 alt_pkey_index;
- __u8 qp_state;
+  __u32 qp_access_flags;
+  __u16 pkey_index;
+  __u16 alt_pkey_index;
+  __u8 qp_state;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 cur_qp_state;
- __u8 path_mtu;
- __u8 path_mig_state;
- __u8 en_sqd_async_notify;
+  __u8 cur_qp_state;
+  __u8 path_mtu;
+  __u8 path_mig_state;
+  __u8 en_sqd_async_notify;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 max_rd_atomic;
- __u8 max_dest_rd_atomic;
- __u8 min_rnr_timer;
- __u8 port_num;
+  __u8 max_rd_atomic;
+  __u8 max_dest_rd_atomic;
+  __u8 min_rnr_timer;
+  __u8 port_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 timeout;
- __u8 retry_cnt;
- __u8 rnr_retry;
- __u8 alt_port_num;
+  __u8 timeout;
+  __u8 retry_cnt;
+  __u8 rnr_retry;
+  __u8 alt_port_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 alt_timeout;
- __u8 reserved[2];
- __u64 driver_data[0];
+  __u8 alt_timeout;
+  __u8 reserved[2];
+  __u64 driver_data[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_modify_qp_resp {
 };
 struct ib_uverbs_destroy_qp {
- __u64 response;
+  __u64 response;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qp_handle;
- __u32 reserved;
+  __u32 qp_handle;
+  __u32 reserved;
 };
 struct ib_uverbs_destroy_qp_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 events_reported;
+  __u32 events_reported;
 };
 struct ib_uverbs_sge {
- __u64 addr;
+  __u64 addr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 length;
- __u32 lkey;
+  __u32 length;
+  __u32 lkey;
 };
 struct ib_uverbs_send_wr {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 wr_id;
- __u32 num_sge;
- __u32 opcode;
- __u32 send_flags;
+  __u64 wr_id;
+  __u32 num_sge;
+  __u32 opcode;
+  __u32 send_flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- __u32 imm_data;
- __u32 invalidate_rkey;
- } ex;
+  union {
+    __u32 imm_data;
+    __u32 invalidate_rkey;
+  } ex;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- struct {
- __u64 remote_addr;
- __u32 rkey;
+  union {
+    struct {
+      __u64 remote_addr;
+      __u32 rkey;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
- } rdma;
- struct {
- __u64 remote_addr;
+      __u32 reserved;
+    } rdma;
+    struct {
+      __u64 remote_addr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 compare_add;
- __u64 swap;
- __u32 rkey;
- __u32 reserved;
+      __u64 compare_add;
+      __u64 swap;
+      __u32 rkey;
+      __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } atomic;
- struct {
- __u32 ah;
- __u32 remote_qpn;
+    } atomic;
+    struct {
+      __u32 ah;
+      __u32 remote_qpn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 remote_qkey;
- __u32 reserved;
- } ud;
- } wr;
+      __u32 remote_qkey;
+      __u32 reserved;
+    } ud;
+  } wr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_post_send {
- __u64 response;
- __u32 qp_handle;
+  __u64 response;
+  __u32 qp_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 wr_count;
- __u32 sge_count;
- __u32 wqe_size;
- struct ib_uverbs_send_wr send_wr[0];
+  __u32 wr_count;
+  __u32 sge_count;
+  __u32 wqe_size;
+  struct ib_uverbs_send_wr send_wr[0];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_post_send_resp {
- __u32 bad_wr;
+  __u32 bad_wr;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_recv_wr {
- __u64 wr_id;
- __u32 num_sge;
- __u32 reserved;
+  __u64 wr_id;
+  __u32 num_sge;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_post_recv {
- __u64 response;
- __u32 qp_handle;
+  __u64 response;
+  __u32 qp_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 wr_count;
- __u32 sge_count;
- __u32 wqe_size;
- struct ib_uverbs_recv_wr recv_wr[0];
+  __u32 wr_count;
+  __u32 sge_count;
+  __u32 wqe_size;
+  struct ib_uverbs_recv_wr recv_wr[0];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_post_recv_resp {
- __u32 bad_wr;
+  __u32 bad_wr;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_post_srq_recv {
- __u64 response;
- __u32 srq_handle;
- __u32 wr_count;
+  __u64 response;
+  __u32 srq_handle;
+  __u32 wr_count;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sge_count;
- __u32 wqe_size;
- struct ib_uverbs_recv_wr recv[0];
+  __u32 sge_count;
+  __u32 wqe_size;
+  struct ib_uverbs_recv_wr recv[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_post_srq_recv_resp {
- __u32 bad_wr;
+  __u32 bad_wr;
 };
 struct ib_uverbs_create_ah {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 user_handle;
- __u32 pd_handle;
- __u32 reserved;
+  __u64 response;
+  __u64 user_handle;
+  __u32 pd_handle;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_ah_attr attr;
+  struct ib_uverbs_ah_attr attr;
 };
 struct ib_uverbs_create_ah_resp {
- __u32 ah_handle;
+  __u32 ah_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_destroy_ah {
- __u32 ah_handle;
+  __u32 ah_handle;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_attach_mcast {
- __u8 gid[16];
- __u32 qp_handle;
- __u16 mlid;
+  __u8 gid[16];
+  __u32 qp_handle;
+  __u16 mlid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 reserved;
- __u64 driver_data[0];
+  __u16 reserved;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_detach_mcast {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 gid[16];
- __u32 qp_handle;
- __u16 mlid;
- __u16 reserved;
+  __u8 gid[16];
+  __u32 qp_handle;
+  __u16 mlid;
+  __u16 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 driver_data[0];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_flow_spec_hdr {
- __u32 type;
+  __u32 type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 size;
- __u16 reserved;
- __u64 flow_spec_data[0];
+  __u16 size;
+  __u16 reserved;
+  __u64 flow_spec_data[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_flow_eth_filter {
- __u8 dst_mac[6];
- __u8 src_mac[6];
- __be16 ether_type;
+  __u8 dst_mac[6];
+  __u8 src_mac[6];
+  __be16 ether_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be16 vlan_tag;
+  __be16 vlan_tag;
 };
 struct ib_uverbs_flow_spec_eth {
- union {
+  union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_flow_spec_hdr hdr;
- struct {
- __u32 type;
- __u16 size;
+    struct ib_uverbs_flow_spec_hdr hdr;
+    struct {
+      __u32 type;
+      __u16 size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 reserved;
- };
- };
- struct ib_uverbs_flow_eth_filter val;
+      __u16 reserved;
+    };
+  };
+  struct ib_uverbs_flow_eth_filter val;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_flow_eth_filter mask;
+  struct ib_uverbs_flow_eth_filter mask;
 };
 struct ib_uverbs_flow_ipv4_filter {
- __be32 src_ip;
+  __be32 src_ip;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be32 dst_ip;
+  __be32 dst_ip;
 };
 struct ib_uverbs_flow_spec_ipv4 {
- union {
+  union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_flow_spec_hdr hdr;
- struct {
- __u32 type;
- __u16 size;
+    struct ib_uverbs_flow_spec_hdr hdr;
+    struct {
+      __u32 type;
+      __u16 size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 reserved;
- };
- };
- struct ib_uverbs_flow_ipv4_filter val;
+      __u16 reserved;
+    };
+  };
+  struct ib_uverbs_flow_ipv4_filter val;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_flow_ipv4_filter mask;
+  struct ib_uverbs_flow_ipv4_filter mask;
 };
 struct ib_uverbs_flow_tcp_udp_filter {
- __be16 dst_port;
+  __be16 dst_port;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be16 src_port;
+  __be16 src_port;
 };
 struct ib_uverbs_flow_spec_tcp_udp {
- union {
+  union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_flow_spec_hdr hdr;
- struct {
- __u32 type;
- __u16 size;
+    struct ib_uverbs_flow_spec_hdr hdr;
+    struct {
+      __u32 type;
+      __u16 size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 reserved;
- };
- };
- struct ib_uverbs_flow_tcp_udp_filter val;
+      __u16 reserved;
+    };
+  };
+  struct ib_uverbs_flow_tcp_udp_filter val;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ib_uverbs_flow_tcp_udp_filter mask;
+  struct ib_uverbs_flow_tcp_udp_filter mask;
 };
 struct ib_uverbs_flow_attr {
- __u32 type;
+  __u32 type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 size;
- __u16 priority;
- __u8 num_of_specs;
- __u8 reserved[2];
+  __u16 size;
+  __u16 priority;
+  __u8 num_of_specs;
+  __u8 reserved[2];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 port;
- __u32 flags;
- struct ib_uverbs_flow_spec_hdr flow_specs[0];
+  __u8 port;
+  __u32 flags;
+  struct ib_uverbs_flow_spec_hdr flow_specs[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_create_flow {
- __u32 comp_mask;
- __u32 qp_handle;
- struct ib_uverbs_flow_attr flow_attr;
+  __u32 comp_mask;
+  __u32 qp_handle;
+  struct ib_uverbs_flow_attr flow_attr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_create_flow_resp {
- __u32 comp_mask;
- __u32 flow_handle;
+  __u32 comp_mask;
+  __u32 flow_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_destroy_flow {
- __u32 comp_mask;
- __u32 flow_handle;
+  __u32 comp_mask;
+  __u32 flow_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_create_srq {
- __u64 response;
- __u64 user_handle;
+  __u64 response;
+  __u64 user_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 pd_handle;
- __u32 max_wr;
- __u32 max_sge;
- __u32 srq_limit;
+  __u32 pd_handle;
+  __u32 max_wr;
+  __u32 max_sge;
+  __u32 srq_limit;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 driver_data[0];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_create_xsrq {
- __u64 response;
+  __u64 response;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 user_handle;
- __u32 srq_type;
- __u32 pd_handle;
- __u32 max_wr;
+  __u64 user_handle;
+  __u32 srq_type;
+  __u32 pd_handle;
+  __u32 max_wr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_sge;
- __u32 srq_limit;
- __u32 reserved;
- __u32 xrcd_handle;
+  __u32 max_sge;
+  __u32 srq_limit;
+  __u32 reserved;
+  __u32 xrcd_handle;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 cq_handle;
- __u64 driver_data[0];
+  __u32 cq_handle;
+  __u64 driver_data[0];
 };
 struct ib_uverbs_create_srq_resp {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 srq_handle;
- __u32 max_wr;
- __u32 max_sge;
- __u32 srqn;
+  __u32 srq_handle;
+  __u32 max_wr;
+  __u32 max_sge;
+  __u32 srqn;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_modify_srq {
- __u32 srq_handle;
- __u32 attr_mask;
+  __u32 srq_handle;
+  __u32 attr_mask;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_wr;
- __u32 srq_limit;
- __u64 driver_data[0];
+  __u32 max_wr;
+  __u32 srq_limit;
+  __u64 driver_data[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_query_srq {
- __u64 response;
- __u32 srq_handle;
- __u32 reserved;
+  __u64 response;
+  __u32 srq_handle;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 driver_data[0];
+  __u64 driver_data[0];
 };
 struct ib_uverbs_query_srq_resp {
- __u32 max_wr;
+  __u32 max_wr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_sge;
- __u32 srq_limit;
- __u32 reserved;
+  __u32 max_sge;
+  __u32 srq_limit;
+  __u32 reserved;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct ib_uverbs_destroy_srq {
- __u64 response;
- __u32 srq_handle;
- __u32 reserved;
+  __u64 response;
+  __u32 srq_handle;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct ib_uverbs_destroy_srq_resp {
- __u32 events_reported;
+  __u32 events_reported;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h
index 51aab2c..e49bfff 100644
--- a/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -21,135 +21,135 @@
 #include <linux/types.h>
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_NL_RDMA_CM = 1,
- RDMA_NL_NES,
- RDMA_NL_C4IW,
- RDMA_NL_NUM_CLIENTS
+  RDMA_NL_RDMA_CM = 1,
+  RDMA_NL_NES,
+  RDMA_NL_C4IW,
+  RDMA_NL_NUM_CLIENTS
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum {
- RDMA_NL_GROUP_CM = 1,
- RDMA_NL_GROUP_IWPM,
+  RDMA_NL_GROUP_CM = 1,
+  RDMA_NL_GROUP_IWPM,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_NL_NUM_GROUPS
+  RDMA_NL_NUM_GROUPS
 };
 #define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10)
 #define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
+#define RDMA_NL_GET_TYPE(client,op) ((client << 10) + op)
 enum {
- RDMA_NL_RDMA_CM_ID_STATS = 0,
- RDMA_NL_RDMA_CM_NUM_OPS
+  RDMA_NL_RDMA_CM_ID_STATS = 0,
+  RDMA_NL_RDMA_CM_NUM_OPS
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum {
- RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
- RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
+  RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
+  RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_NL_RDMA_CM_NUM_ATTR,
+  RDMA_NL_RDMA_CM_NUM_ATTR,
 };
 enum {
- RDMA_NL_IWPM_REG_PID = 0,
+  RDMA_NL_IWPM_REG_PID = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_NL_IWPM_ADD_MAPPING,
- RDMA_NL_IWPM_QUERY_MAPPING,
- RDMA_NL_IWPM_REMOVE_MAPPING,
- RDMA_NL_IWPM_HANDLE_ERR,
+  RDMA_NL_IWPM_ADD_MAPPING,
+  RDMA_NL_IWPM_QUERY_MAPPING,
+  RDMA_NL_IWPM_REMOVE_MAPPING,
+  RDMA_NL_IWPM_HANDLE_ERR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_NL_IWPM_MAPINFO,
- RDMA_NL_IWPM_MAPINFO_NUM,
- RDMA_NL_IWPM_NUM_OPS
+  RDMA_NL_IWPM_MAPINFO,
+  RDMA_NL_IWPM_MAPINFO_NUM,
+  RDMA_NL_IWPM_NUM_OPS
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_cm_id_stats {
- __u32 qp_num;
- __u32 bound_dev_if;
- __u32 port_space;
+  __u32 qp_num;
+  __u32 bound_dev_if;
+  __u32 port_space;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s32 pid;
- __u8 cm_state;
- __u8 node_type;
- __u8 port_num;
+  __s32 pid;
+  __u8 cm_state;
+  __u8 node_type;
+  __u8 port_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 qp_type;
+  __u8 qp_type;
 };
 enum {
- IWPM_NLA_REG_PID_UNSPEC = 0,
+  IWPM_NLA_REG_PID_UNSPEC = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_REG_PID_SEQ,
- IWPM_NLA_REG_IF_NAME,
- IWPM_NLA_REG_IBDEV_NAME,
- IWPM_NLA_REG_ULIB_NAME,
+  IWPM_NLA_REG_PID_SEQ,
+  IWPM_NLA_REG_IF_NAME,
+  IWPM_NLA_REG_IBDEV_NAME,
+  IWPM_NLA_REG_ULIB_NAME,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_REG_PID_MAX
+  IWPM_NLA_REG_PID_MAX
 };
 enum {
- IWPM_NLA_RREG_PID_UNSPEC = 0,
+  IWPM_NLA_RREG_PID_UNSPEC = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_RREG_PID_SEQ,
- IWPM_NLA_RREG_IBDEV_NAME,
- IWPM_NLA_RREG_ULIB_NAME,
- IWPM_NLA_RREG_ULIB_VER,
+  IWPM_NLA_RREG_PID_SEQ,
+  IWPM_NLA_RREG_IBDEV_NAME,
+  IWPM_NLA_RREG_ULIB_NAME,
+  IWPM_NLA_RREG_ULIB_VER,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_RREG_PID_ERR,
- IWPM_NLA_RREG_PID_MAX
+  IWPM_NLA_RREG_PID_ERR,
+  IWPM_NLA_RREG_PID_MAX
 };
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
- IWPM_NLA_MANAGE_MAPPING_SEQ,
- IWPM_NLA_MANAGE_ADDR,
- IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
+  IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
+  IWPM_NLA_MANAGE_MAPPING_SEQ,
+  IWPM_NLA_MANAGE_ADDR,
+  IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_RMANAGE_MAPPING_ERR,
- IWPM_NLA_RMANAGE_MAPPING_MAX
+  IWPM_NLA_RMANAGE_MAPPING_ERR,
+  IWPM_NLA_RMANAGE_MAPPING_MAX
 };
 #define IWPM_NLA_MANAGE_MAPPING_MAX 3
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IWPM_NLA_QUERY_MAPPING_MAX 4
 #define IWPM_NLA_MAPINFO_SEND_MAX 3
 enum {
- IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
+  IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_QUERY_MAPPING_SEQ,
- IWPM_NLA_QUERY_LOCAL_ADDR,
- IWPM_NLA_QUERY_REMOTE_ADDR,
- IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
+  IWPM_NLA_QUERY_MAPPING_SEQ,
+  IWPM_NLA_QUERY_LOCAL_ADDR,
+  IWPM_NLA_QUERY_REMOTE_ADDR,
+  IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
- IWPM_NLA_RQUERY_MAPPING_ERR,
- IWPM_NLA_RQUERY_MAPPING_MAX
+  IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
+  IWPM_NLA_RQUERY_MAPPING_ERR,
+  IWPM_NLA_RQUERY_MAPPING_MAX
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum {
- IWPM_NLA_MAPINFO_REQ_UNSPEC = 0,
- IWPM_NLA_MAPINFO_ULIB_NAME,
- IWPM_NLA_MAPINFO_ULIB_VER,
+  IWPM_NLA_MAPINFO_REQ_UNSPEC = 0,
+  IWPM_NLA_MAPINFO_ULIB_NAME,
+  IWPM_NLA_MAPINFO_ULIB_VER,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_MAPINFO_REQ_MAX
+  IWPM_NLA_MAPINFO_REQ_MAX
 };
 enum {
- IWPM_NLA_MAPINFO_UNSPEC = 0,
+  IWPM_NLA_MAPINFO_UNSPEC = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_MAPINFO_LOCAL_ADDR,
- IWPM_NLA_MAPINFO_MAPPED_ADDR,
- IWPM_NLA_MAPINFO_MAX
+  IWPM_NLA_MAPINFO_LOCAL_ADDR,
+  IWPM_NLA_MAPINFO_MAPPED_ADDR,
+  IWPM_NLA_MAPINFO_MAX
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum {
- IWPM_NLA_MAPINFO_NUM_UNSPEC = 0,
- IWPM_NLA_MAPINFO_SEQ,
- IWPM_NLA_MAPINFO_SEND_NUM,
+  IWPM_NLA_MAPINFO_NUM_UNSPEC = 0,
+  IWPM_NLA_MAPINFO_SEQ,
+  IWPM_NLA_MAPINFO_SEND_NUM,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_MAPINFO_ACK_NUM,
- IWPM_NLA_MAPINFO_NUM_MAX
+  IWPM_NLA_MAPINFO_ACK_NUM,
+  IWPM_NLA_MAPINFO_NUM_MAX
 };
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IWPM_NLA_ERR_UNSPEC = 0,
- IWPM_NLA_ERR_SEQ,
- IWPM_NLA_ERR_CODE,
- IWPM_NLA_ERR_MAX
+  IWPM_NLA_ERR_UNSPEC = 0,
+  IWPM_NLA_ERR_SEQ,
+  IWPM_NLA_ERR_CODE,
+  IWPM_NLA_ERR_MAX
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_user_cm.h b/libc/kernel/uapi/rdma/rdma_user_cm.h
index d142261..f244926 100644
--- a/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -28,276 +28,276 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define RDMA_MAX_PRIVATE_DATA 256
 enum {
- RDMA_USER_CM_CMD_CREATE_ID,
- RDMA_USER_CM_CMD_DESTROY_ID,
+  RDMA_USER_CM_CMD_CREATE_ID,
+  RDMA_USER_CM_CMD_DESTROY_ID,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_CMD_BIND_IP,
- RDMA_USER_CM_CMD_RESOLVE_IP,
- RDMA_USER_CM_CMD_RESOLVE_ROUTE,
- RDMA_USER_CM_CMD_QUERY_ROUTE,
+  RDMA_USER_CM_CMD_BIND_IP,
+  RDMA_USER_CM_CMD_RESOLVE_IP,
+  RDMA_USER_CM_CMD_RESOLVE_ROUTE,
+  RDMA_USER_CM_CMD_QUERY_ROUTE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_CMD_CONNECT,
- RDMA_USER_CM_CMD_LISTEN,
- RDMA_USER_CM_CMD_ACCEPT,
- RDMA_USER_CM_CMD_REJECT,
+  RDMA_USER_CM_CMD_CONNECT,
+  RDMA_USER_CM_CMD_LISTEN,
+  RDMA_USER_CM_CMD_ACCEPT,
+  RDMA_USER_CM_CMD_REJECT,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_CMD_DISCONNECT,
- RDMA_USER_CM_CMD_INIT_QP_ATTR,
- RDMA_USER_CM_CMD_GET_EVENT,
- RDMA_USER_CM_CMD_GET_OPTION,
+  RDMA_USER_CM_CMD_DISCONNECT,
+  RDMA_USER_CM_CMD_INIT_QP_ATTR,
+  RDMA_USER_CM_CMD_GET_EVENT,
+  RDMA_USER_CM_CMD_GET_OPTION,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_CMD_SET_OPTION,
- RDMA_USER_CM_CMD_NOTIFY,
- RDMA_USER_CM_CMD_JOIN_IP_MCAST,
- RDMA_USER_CM_CMD_LEAVE_MCAST,
+  RDMA_USER_CM_CMD_SET_OPTION,
+  RDMA_USER_CM_CMD_NOTIFY,
+  RDMA_USER_CM_CMD_JOIN_IP_MCAST,
+  RDMA_USER_CM_CMD_LEAVE_MCAST,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_CMD_MIGRATE_ID,
- RDMA_USER_CM_CMD_QUERY,
- RDMA_USER_CM_CMD_BIND,
- RDMA_USER_CM_CMD_RESOLVE_ADDR,
+  RDMA_USER_CM_CMD_MIGRATE_ID,
+  RDMA_USER_CM_CMD_QUERY,
+  RDMA_USER_CM_CMD_BIND,
+  RDMA_USER_CM_CMD_RESOLVE_ADDR,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_CMD_JOIN_MCAST
+  RDMA_USER_CM_CMD_JOIN_MCAST
 };
 struct rdma_ucm_cmd_hdr {
- __u32 cmd;
+  __u32 cmd;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 in;
- __u16 out;
+  __u16 in;
+  __u16 out;
 };
 struct rdma_ucm_create_id {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 uid;
- __u64 response;
- __u16 ps;
- __u8 qp_type;
+  __u64 uid;
+  __u64 response;
+  __u16 ps;
+  __u8 qp_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[5];
+  __u8 reserved[5];
 };
 struct rdma_ucm_create_id_resp {
- __u32 id;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_destroy_id {
- __u64 response;
- __u32 id;
+  __u64 response;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved;
+  __u32 reserved;
 };
 struct rdma_ucm_destroy_id_resp {
- __u32 events_reported;
+  __u32 events_reported;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_bind_ip {
- __u64 response;
- struct sockaddr_in6 addr;
+  __u64 response;
+  struct sockaddr_in6 addr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
+  __u32 id;
 };
 struct rdma_ucm_bind {
- __u32 id;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 addr_size;
- __u16 reserved;
- struct sockaddr_storage addr;
+  __u16 addr_size;
+  __u16 reserved;
+  struct sockaddr_storage addr;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_ucm_resolve_ip {
- struct sockaddr_in6 src_addr;
- struct sockaddr_in6 dst_addr;
- __u32 id;
+  struct sockaddr_in6 src_addr;
+  struct sockaddr_in6 dst_addr;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 timeout_ms;
+  __u32 timeout_ms;
 };
 struct rdma_ucm_resolve_addr {
- __u32 id;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 timeout_ms;
- __u16 src_size;
- __u16 dst_size;
- __u32 reserved;
+  __u32 timeout_ms;
+  __u16 src_size;
+  __u16 dst_size;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct sockaddr_storage src_addr;
- struct sockaddr_storage dst_addr;
+  struct sockaddr_storage src_addr;
+  struct sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 timeout_ms;
+  __u32 id;
+  __u32 timeout_ms;
 };
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_USER_CM_QUERY_ADDR,
- RDMA_USER_CM_QUERY_PATH,
- RDMA_USER_CM_QUERY_GID
+  RDMA_USER_CM_QUERY_ADDR,
+  RDMA_USER_CM_QUERY_PATH,
+  RDMA_USER_CM_QUERY_GID
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_ucm_query {
- __u64 response;
- __u32 id;
- __u32 option;
+  __u64 response;
+  __u32 id;
+  __u32 option;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_query_route_resp {
- __u64 node_guid;
- struct ib_user_path_rec ib_route[2];
+  __u64 node_guid;
+  struct ib_user_path_rec ib_route[2];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct sockaddr_in6 src_addr;
- struct sockaddr_in6 dst_addr;
- __u32 num_paths;
- __u8 port_num;
+  struct sockaddr_in6 src_addr;
+  struct sockaddr_in6 dst_addr;
+  __u32 num_paths;
+  __u8 port_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[3];
+  __u8 reserved[3];
 };
 struct rdma_ucm_query_addr_resp {
- __u64 node_guid;
+  __u64 node_guid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 port_num;
- __u8 reserved;
- __u16 pkey;
- __u16 src_size;
+  __u8 port_num;
+  __u8 reserved;
+  __u16 pkey;
+  __u16 src_size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 dst_size;
- struct sockaddr_storage src_addr;
- struct sockaddr_storage dst_addr;
+  __u16 dst_size;
+  struct sockaddr_storage src_addr;
+  struct sockaddr_storage dst_addr;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_ucm_query_path_resp {
- __u32 num_paths;
- __u32 reserved;
- struct ib_path_rec_data path_data[0];
+  __u32 num_paths;
+  __u32 reserved;
+  struct ib_path_rec_data path_data[0];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_conn_param {
- __u32 qp_num;
- __u32 qkey;
+  __u32 qp_num;
+  __u32 qkey;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 private_data[RDMA_MAX_PRIVATE_DATA];
- __u8 private_data_len;
- __u8 srq;
- __u8 responder_resources;
+  __u8 private_data[RDMA_MAX_PRIVATE_DATA];
+  __u8 private_data_len;
+  __u8 srq;
+  __u8 responder_resources;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 initiator_depth;
- __u8 flow_control;
- __u8 retry_count;
- __u8 rnr_retry_count;
+  __u8 initiator_depth;
+  __u8 flow_control;
+  __u8 retry_count;
+  __u8 rnr_retry_count;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 valid;
+  __u8 valid;
 };
 struct rdma_ucm_ud_param {
- __u32 qp_num;
+  __u32 qp_num;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 qkey;
- struct ib_uverbs_ah_attr ah_attr;
- __u8 private_data[RDMA_MAX_PRIVATE_DATA];
- __u8 private_data_len;
+  __u32 qkey;
+  struct ib_uverbs_ah_attr ah_attr;
+  __u8 private_data[RDMA_MAX_PRIVATE_DATA];
+  __u8 private_data_len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[7];
+  __u8 reserved[7];
 };
 struct rdma_ucm_connect {
- struct rdma_ucm_conn_param conn_param;
+  struct rdma_ucm_conn_param conn_param;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 reserved;
+  __u32 id;
+  __u32 reserved;
 };
 struct rdma_ucm_listen {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 backlog;
+  __u32 id;
+  __u32 backlog;
 };
 struct rdma_ucm_accept {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 uid;
- struct rdma_ucm_conn_param conn_param;
- __u32 id;
- __u32 reserved;
+  __u64 uid;
+  struct rdma_ucm_conn_param conn_param;
+  __u32 id;
+  __u32 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_reject {
- __u32 id;
- __u8 private_data_len;
+  __u32 id;
+  __u8 private_data_len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved[3];
- __u8 private_data[RDMA_MAX_PRIVATE_DATA];
+  __u8 reserved[3];
+  __u8 private_data[RDMA_MAX_PRIVATE_DATA];
 };
 struct rdma_ucm_disconnect {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
+  __u32 id;
 };
 struct rdma_ucm_init_qp_attr {
- __u64 response;
+  __u64 response;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 qp_state;
+  __u32 id;
+  __u32 qp_state;
 };
 struct rdma_ucm_notify {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 event;
+  __u32 id;
+  __u32 event;
 };
 struct rdma_ucm_join_ip_mcast {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u64 uid;
- struct sockaddr_in6 addr;
- __u32 id;
+  __u64 response;
+  __u64 uid;
+  struct sockaddr_in6 addr;
+  __u32 id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_join_mcast {
- __u64 response;
- __u64 uid;
+  __u64 response;
+  __u64 uid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u16 addr_size;
- __u16 reserved;
- struct sockaddr_storage addr;
+  __u32 id;
+  __u16 addr_size;
+  __u16 reserved;
+  struct sockaddr_storage addr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct rdma_ucm_get_event {
- __u64 response;
+  __u64 response;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_ucm_event_resp {
- __u64 uid;
- __u32 id;
- __u32 event;
+  __u64 uid;
+  __u32 id;
+  __u32 event;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 status;
- union {
- struct rdma_ucm_conn_param conn;
- struct rdma_ucm_ud_param ud;
+  __u32 status;
+  union {
+    struct rdma_ucm_conn_param conn;
+    struct rdma_ucm_ud_param ud;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } param;
+  } param;
 };
 enum {
- RDMA_OPTION_ID = 0,
+  RDMA_OPTION_ID = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_OPTION_IB = 1
+  RDMA_OPTION_IB = 1
 };
 enum {
- RDMA_OPTION_ID_TOS = 0,
+  RDMA_OPTION_ID_TOS = 0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDMA_OPTION_ID_REUSEADDR = 1,
- RDMA_OPTION_ID_AFONLY = 2,
- RDMA_OPTION_IB_PATH = 1
+  RDMA_OPTION_ID_REUSEADDR = 1,
+  RDMA_OPTION_ID_AFONLY = 2,
+  RDMA_OPTION_IB_PATH = 1
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_ucm_set_option {
- __u64 optval;
- __u32 id;
- __u32 level;
+  __u64 optval;
+  __u32 id;
+  __u32 level;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 optname;
- __u32 optlen;
+  __u32 optname;
+  __u32 optlen;
 };
 struct rdma_ucm_migrate_id {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 response;
- __u32 id;
- __u32 fd;
+  __u64 response;
+  __u32 id;
+  __u32 fd;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct rdma_ucm_migrate_resp {
- __u32 events_reported;
+  __u32 events_reported;
 };
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
