Update to v5.0 kernel headers.

Test: Builds and boots on taimen.
Change-Id: I13843bf1ab30ea89a50852adc88f2cba8401bded
diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_user.h b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
index 9148ed5..e74d837 100644
--- a/libc/kernel/uapi/rdma/hfi/hfi1_user.h
+++ b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
@@ -28,6 +28,7 @@
 #define HFI1_CAP_SDMA_AHG (1UL << 2)
 #define HFI1_CAP_EXTENDED_PSN (1UL << 3)
 #define HFI1_CAP_HDRSUPP (1UL << 4)
+#define HFI1_CAP_TID_RDMA (1UL << 5)
 #define HFI1_CAP_USE_SDMA_HEAD (1UL << 6)
 #define HFI1_CAP_MULTI_PKT_EGR (1UL << 7)
 #define HFI1_CAP_NODROP_RHQ_FULL (1UL << 8)
@@ -38,6 +39,7 @@
 #define HFI1_CAP_NO_INTEGRITY (1UL << 13)
 #define HFI1_CAP_PKEY_CHECK (1UL << 14)
 #define HFI1_CAP_STATIC_RATE_CTRL (1UL << 15)
+#define HFI1_CAP_OPFN (1UL << 16)
 #define HFI1_CAP_SDMA_HEAD_CHECK (1UL << 17)
 #define HFI1_CAP_EARLY_CREDIT_RETURN (1UL << 18)
 #define HFI1_RCVHDR_ENTSIZE_2 (1UL << 0)
diff --git a/libc/kernel/uapi/rdma/hns-abi.h b/libc/kernel/uapi/rdma/hns-abi.h
index 23bedf9..0bae0d4 100644
--- a/libc/kernel/uapi/rdma/hns-abi.h
+++ b/libc/kernel/uapi/rdma/hns-abi.h
@@ -27,6 +27,15 @@
   __aligned_u64 cqn;
   __aligned_u64 cap_flags;
 };
+struct hns_roce_ib_create_srq {
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
+  __aligned_u64 que_addr;
+};
+struct hns_roce_ib_create_srq_resp {
+  __u32 srqn;
+  __u32 reserved;
+};
 struct hns_roce_ib_create_qp {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
index 69ded8e..ebf8b7c 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
@@ -44,6 +44,20 @@
   UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
   UVERBS_ATTR_UHW_OUT,
 };
+enum uverbs_methods_device {
+  UVERBS_METHOD_INVOKE_WRITE,
+  UVERBS_METHOD_INFO_HANDLES,
+  UVERBS_METHOD_QUERY_PORT,
+};
+enum uverbs_attrs_invoke_write_cmd_attr_ids {
+  UVERBS_ATTR_CORE_IN,
+  UVERBS_ATTR_CORE_OUT,
+  UVERBS_ATTR_WRITE_CMD,
+};
+enum uverbs_attrs_query_port_cmd_attr_ids {
+  UVERBS_ATTR_QUERY_PORT_PORT_NUM,
+  UVERBS_ATTR_QUERY_PORT_RESP,
+};
 enum uverbs_attrs_create_cq_cmd_attr_ids {
   UVERBS_ATTR_CREATE_CQ_HANDLE,
   UVERBS_ATTR_CREATE_CQ_CQE,
@@ -104,6 +118,17 @@
 };
 enum uverbs_methods_mr {
   UVERBS_METHOD_DM_MR_REG,
+  UVERBS_METHOD_MR_DESTROY,
+  UVERBS_METHOD_ADVISE_MR,
+};
+enum uverbs_attrs_mr_destroy_ids {
+  UVERBS_ATTR_DESTROY_MR_HANDLE,
+};
+enum uverbs_attrs_advise_mr_cmd_attr_ids {
+  UVERBS_ATTR_ADVISE_MR_PD_HANDLE,
+  UVERBS_ATTR_ADVISE_MR_ADVICE,
+  UVERBS_ATTR_ADVISE_MR_FLAGS,
+  UVERBS_ATTR_ADVISE_MR_SGE_LIST,
 };
 enum uverbs_attrs_create_counters_cmd_attr_ids {
   UVERBS_ATTR_CREATE_COUNTERS_HANDLE,
@@ -121,4 +146,45 @@
   UVERBS_METHOD_COUNTERS_DESTROY,
   UVERBS_METHOD_COUNTERS_READ,
 };
+enum uverbs_attrs_info_handles_id {
+  UVERBS_ATTR_INFO_OBJECT_ID,
+  UVERBS_ATTR_INFO_TOTAL_HANDLES,
+  UVERBS_ATTR_INFO_HANDLES_LIST,
+};
+enum uverbs_methods_pd {
+  UVERBS_METHOD_PD_DESTROY,
+};
+enum uverbs_attrs_pd_destroy_ids {
+  UVERBS_ATTR_DESTROY_PD_HANDLE,
+};
+enum uverbs_methods_mw {
+  UVERBS_METHOD_MW_DESTROY,
+};
+enum uverbs_attrs_mw_destroy_ids {
+  UVERBS_ATTR_DESTROY_MW_HANDLE,
+};
+enum uverbs_methods_xrcd {
+  UVERBS_METHOD_XRCD_DESTROY,
+};
+enum uverbs_attrs_xrcd_destroy_ids {
+  UVERBS_ATTR_DESTROY_XRCD_HANDLE,
+};
+enum uverbs_methods_ah {
+  UVERBS_METHOD_AH_DESTROY,
+};
+enum uverbs_attrs_ah_destroy_ids {
+  UVERBS_ATTR_DESTROY_AH_HANDLE,
+};
+enum uverbs_methods_rwq_ind_tbl {
+  UVERBS_METHOD_RWQ_IND_TBL_DESTROY,
+};
+enum uverbs_attrs_rwq_ind_tbl_destroy_ids {
+  UVERBS_ATTR_DESTROY_RWQ_IND_TBL_HANDLE,
+};
+enum uverbs_methods_flow {
+  UVERBS_METHOD_FLOW_DESTROY,
+};
+enum uverbs_attrs_flow_destroy_ids {
+  UVERBS_ATTR_DESTROY_FLOW_HANDLE,
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index 8bea1cb..47a548e 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -19,6 +19,7 @@
 #ifndef IB_USER_IOCTL_VERBS_H
 #define IB_USER_IOCTL_VERBS_H
 #include <linux/types.h>
+#include <rdma/ib_user_verbs.h>
 #ifndef RDMA_UAPI_PTR
 #define RDMA_UAPI_PTR(_type,_name) __aligned_u64 _name
 #endif
@@ -112,4 +113,16 @@
 enum ib_uverbs_read_counters_flags {
   IB_UVERBS_READ_COUNTERS_PREFER_CACHED = 1 << 0,
 };
+enum ib_uverbs_advise_mr_advice {
+  IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH,
+  IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE,
+};
+enum ib_uverbs_advise_mr_flag {
+  IB_UVERBS_ADVISE_MR_FLAG_FLUSH = 1 << 0,
+};
+struct ib_uverbs_query_port_resp_ex {
+  struct ib_uverbs_query_port_resp legacy_resp;
+  __u16 port_cap_flags2;
+  __u8 reserved[6];
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index 6ca4413..3154b7a 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define IB_USER_VERBS_ABI_VERSION 6
 #define IB_USER_VERBS_CMD_THRESHOLD 50
-enum {
+enum ib_uverbs_write_cmds {
   IB_USER_VERBS_CMD_GET_CONTEXT,
   IB_USER_VERBS_CMD_QUERY_DEVICE,
   IB_USER_VERBS_CMD_QUERY_PORT,
@@ -111,6 +111,7 @@
 struct ib_uverbs_get_context_resp {
   __u32 async_fd;
   __u32 num_comp_vectors;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_query_device {
   __aligned_u64 response;
@@ -237,6 +238,7 @@
 };
 struct ib_uverbs_alloc_pd_resp {
   __u32 pd_handle;
+  __u32 driver_data[0];
 };
 struct ib_uverbs_dealloc_pd {
   __u32 pd_handle;
@@ -249,6 +251,7 @@
 };
 struct ib_uverbs_open_xrcd_resp {
   __u32 xrcd_handle;
+  __u32 driver_data[0];
 };
 struct ib_uverbs_close_xrcd {
   __u32 xrcd_handle;
@@ -266,6 +269,7 @@
   __u32 mr_handle;
   __u32 lkey;
   __u32 rkey;
+  __u32 driver_data[0];
 };
 struct ib_uverbs_rereg_mr {
   __aligned_u64 response;
@@ -276,10 +280,12 @@
   __aligned_u64 hca_va;
   __u32 pd_handle;
   __u32 access_flags;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_rereg_mr_resp {
   __u32 lkey;
   __u32 rkey;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_dereg_mr {
   __u32 mr_handle;
@@ -289,10 +295,12 @@
   __u32 pd_handle;
   __u8 mw_type;
   __u8 reserved[3];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_alloc_mw_resp {
   __u32 mw_handle;
   __u32 rkey;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_dealloc_mw {
   __u32 mw_handle;
@@ -328,6 +336,7 @@
 struct ib_uverbs_create_cq_resp {
   __u32 cq_handle;
   __u32 cqe;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_ex_create_cq_resp {
   struct ib_uverbs_create_cq_resp base;
@@ -507,6 +516,7 @@
   __u32 max_recv_sge;
   __u32 max_inline_data;
   __u32 reserved;
+  __u32 driver_data[0];
 };
 struct ib_uverbs_ex_create_qp_resp {
   struct ib_uverbs_create_qp_resp base;
@@ -600,8 +610,6 @@
   __u32 rate_limit;
   __u32 reserved;
 };
-struct ib_uverbs_modify_qp_resp {
-};
 struct ib_uverbs_ex_modify_qp_resp {
   __u32 comp_mask;
   __u32 response_length;
@@ -709,9 +717,11 @@
   __u32 pd_handle;
   __u32 reserved;
   struct ib_uverbs_ah_attr attr;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_create_ah_resp {
   __u32 ah_handle;
+  __u32 driver_data[0];
 };
 struct ib_uverbs_destroy_ah {
   __u32 ah_handle;
@@ -970,6 +980,7 @@
   __u32 max_wr;
   __u32 max_sge;
   __u32 srqn;
+  __u32 driver_data[0];
 };
 struct ib_uverbs_modify_srq {
   __u32 srq_handle;
diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h
index 77e14f6..4c85c6c 100644
--- a/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -31,6 +31,7 @@
   MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_UC = 1 << 6,
   MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7,
   MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
+  MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -162,6 +163,7 @@
 enum mlx5_ib_query_dev_resp_flags {
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
+  MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE = 1 << 2,
 };
 enum mlx5_ib_tunnel_offloads {
   MLX5_IB_TUNNELED_OFFLOADS_VXLAN = 1 << 0,
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 902816b..dcc3d85 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -120,6 +120,7 @@
   MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
   MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
   MLX5_IB_ATTR_CREATE_FLOW_TAG,
+  MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
 };
 enum mlx5_ib_destoy_flow_attrs {
   MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
diff --git a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
index 7b43e35..fc86778 100644
--- a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
+++ b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
@@ -47,6 +47,7 @@
   PVRDMA_WR_MASKED_ATOMIC_FETCH_AND_ADD,
   PVRDMA_WR_BIND_MW,
   PVRDMA_WR_REG_SIG_MR,
+  PVRDMA_WR_ERROR,
 };
 enum pvrdma_wc_status {
   PVRDMA_WC_SUCCESS,