Commit 04ca16cc authored by Yishai Hadas's avatar Yishai Hadas Committed by Doug Ledford

IB/core: Enable getting an object type from a given uobject

Enable getting an object type from a given uobject, the type is saved
upon tree merging and is returned as part of some helper function.
Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 4d7e8cc5
...@@ -118,11 +118,6 @@ void release_ufile_idr_uobject(struct ib_uverbs_file *ufile); ...@@ -118,11 +118,6 @@ void release_ufile_idr_uobject(struct ib_uverbs_file *ufile);
* Depending on ID the slot pointer in the radix tree points at one of these * Depending on ID the slot pointer in the radix tree points at one of these
* structs. * structs.
*/ */
struct uverbs_api_object {
const struct uverbs_obj_type *type_attrs;
const struct uverbs_obj_type_class *type_class;
u8 disabled:1;
};
struct uverbs_api_ioctl_method { struct uverbs_api_ioctl_method {
int(__rcu *handler)(struct uverbs_attr_bundle *attrs); int(__rcu *handler)(struct uverbs_attr_bundle *attrs);
......
...@@ -184,6 +184,7 @@ static int uapi_merge_obj_tree(struct uverbs_api *uapi, ...@@ -184,6 +184,7 @@ static int uapi_merge_obj_tree(struct uverbs_api *uapi,
if (WARN_ON(obj_elm->type_attrs)) if (WARN_ON(obj_elm->type_attrs))
return -EINVAL; return -EINVAL;
obj_elm->id = obj->id;
obj_elm->type_attrs = obj->type_attrs; obj_elm->type_attrs = obj->type_attrs;
obj_elm->type_class = obj->type_attrs->type_class; obj_elm->type_class = obj->type_attrs->type_class;
/* /*
......
...@@ -182,5 +182,17 @@ static inline void ib_set_flow(struct ib_uobject *uobj, struct ib_flow *ibflow, ...@@ -182,5 +182,17 @@ static inline void ib_set_flow(struct ib_uobject *uobj, struct ib_flow *ibflow,
uflow->resources = uflow_res; uflow->resources = uflow_res;
} }
struct uverbs_api_object {
const struct uverbs_obj_type *type_attrs;
const struct uverbs_obj_type_class *type_class;
u8 disabled:1;
u32 id;
};
static inline u32 uobj_get_object_id(struct ib_uobject *uobj)
{
return uobj->uapi_object->id;
}
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment