1 // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 2 /* 3 * Copyright (c) 2020, Mellanox Technologies inc. All rights reserved. 4 */ 5 6 #include <rdma/uverbs_ioctl.h> 7 #include <rdma/mlx5_user_ioctl_cmds.h> 8 #include <rdma/mlx5_user_ioctl_verbs.h> 9 #include <linux/mlx5/driver.h> 10 #include "mlx5_ib.h" 11 12 #define UVERBS_MODULE_NAME mlx5_ib 13 #include <rdma/uverbs_named_ioctl.h> 14 15 static int UVERBS_HANDLER(MLX5_IB_METHOD_PD_QUERY)( 16 struct uverbs_attr_bundle *attrs) 17 { 18 struct ib_pd *pd = 19 uverbs_attr_get_obj(attrs, MLX5_IB_ATTR_QUERY_PD_HANDLE); 20 struct mlx5_ib_pd *mpd = to_mpd(pd); 21 22 return uverbs_copy_to(attrs, MLX5_IB_ATTR_QUERY_PD_RESP_PDN, 23 &mpd->pdn, sizeof(mpd->pdn)); 24 } 25 26 DECLARE_UVERBS_NAMED_METHOD( 27 MLX5_IB_METHOD_PD_QUERY, 28 UVERBS_ATTR_IDR(MLX5_IB_ATTR_QUERY_PD_HANDLE, 29 UVERBS_OBJECT_PD, 30 UVERBS_ACCESS_READ, 31 UA_MANDATORY), 32 UVERBS_ATTR_PTR_OUT(MLX5_IB_ATTR_QUERY_PD_RESP_PDN, 33 UVERBS_ATTR_TYPE(u32), 34 UA_MANDATORY)); 35 36 ADD_UVERBS_METHODS(mlx5_ib_pd, 37 UVERBS_OBJECT_PD, 38 &UVERBS_METHOD(MLX5_IB_METHOD_PD_QUERY)); 39 40 const struct uapi_definition mlx5_ib_std_types_defs[] = { 41 UAPI_DEF_CHAIN_OBJ_TREE( 42 UVERBS_OBJECT_PD, 43 &mlx5_ib_pd), 44 {}, 45 }; 46