Lines Matching refs:attr

297 	struct uverbs_attr_spec       attr;  member
496 .attr = { .type = UVERBS_ATTR_TYPE_IDRS_ARRAY, \
512 .attr = { .type = UVERBS_ATTR_TYPE_IDR, \
522 .attr = { .type = UVERBS_ATTR_TYPE_FD, \
530 .attr = { .type = UVERBS_ATTR_TYPE_RAW_FD, __VA_ARGS__ } })
535 .attr = { .type = UVERBS_ATTR_TYPE_PTR_IN, \
542 .attr = { .type = UVERBS_ATTR_TYPE_PTR_OUT, \
550 .attr = { .type = UVERBS_ATTR_TYPE_ENUM_IN, \
684 const struct uverbs_attr *attr = uverbs_attr_get(attrs_bundle, idx); in uverbs_attr_get_enum_id() local
686 if (IS_ERR(attr)) in uverbs_attr_get_enum_id()
687 return PTR_ERR(attr); in uverbs_attr_get_enum_id()
689 return attr->ptr_attr.enum_id; in uverbs_attr_get_enum_id()
695 const struct uverbs_attr *attr; in uverbs_attr_get_obj() local
697 attr = uverbs_attr_get(attrs_bundle, idx); in uverbs_attr_get_obj()
698 if (IS_ERR(attr)) in uverbs_attr_get_obj()
699 return ERR_CAST(attr); in uverbs_attr_get_obj()
701 return attr->obj_attr.uobject->object; in uverbs_attr_get_obj()
707 const struct uverbs_attr *attr = uverbs_attr_get(attrs_bundle, idx); in uverbs_attr_get_uobject() local
709 if (IS_ERR(attr)) in uverbs_attr_get_uobject()
710 return ERR_CAST(attr); in uverbs_attr_get_uobject()
712 return attr->obj_attr.uobject; in uverbs_attr_get_uobject()
718 const struct uverbs_attr *attr = uverbs_attr_get(attrs_bundle, idx); in uverbs_attr_get_len() local
720 if (IS_ERR(attr)) in uverbs_attr_get_len()
721 return PTR_ERR(attr); in uverbs_attr_get_len()
723 return attr->ptr_attr.len; in uverbs_attr_get_len()
763 const struct uverbs_attr *attr = in uverbs_attr_get_uobjs_arr() local
766 if (IS_ERR(attr)) { in uverbs_attr_get_uobjs_arr()
771 *arr = attr->objs_arr_attr.uobjects; in uverbs_attr_get_uobjs_arr()
773 return attr->objs_arr_attr.len; in uverbs_attr_get_uobjs_arr()
776 static inline bool uverbs_attr_ptr_is_inline(const struct uverbs_attr *attr) in uverbs_attr_ptr_is_inline() argument
778 return attr->ptr_attr.len <= sizeof(attr->ptr_attr.data); in uverbs_attr_ptr_is_inline()
784 const struct uverbs_attr *attr = uverbs_attr_get(attrs_bundle, idx); in uverbs_attr_get_alloced_ptr() local
786 if (IS_ERR(attr)) in uverbs_attr_get_alloced_ptr()
787 return (void *)attr; in uverbs_attr_get_alloced_ptr()
789 return uverbs_attr_ptr_is_inline(attr) ? (void *)&attr->ptr_attr.data : in uverbs_attr_get_alloced_ptr()
790 attr->ptr_attr.ptr; in uverbs_attr_get_alloced_ptr()
798 const struct uverbs_attr *attr = uverbs_attr_get(attrs_bundle, idx); in _uverbs_copy_from() local
800 if (IS_ERR(attr)) in _uverbs_copy_from()
801 return PTR_ERR(attr); in _uverbs_copy_from()
808 if (unlikely(size < attr->ptr_attr.len)) in _uverbs_copy_from()
811 if (uverbs_attr_ptr_is_inline(attr)) in _uverbs_copy_from()
812 memcpy(to, &attr->ptr_attr.data, attr->ptr_attr.len); in _uverbs_copy_from()
813 else if (copy_from_user(to, u64_to_user_ptr(attr->ptr_attr.data), in _uverbs_copy_from()
814 attr->ptr_attr.len)) in _uverbs_copy_from()
825 const struct uverbs_attr *attr = uverbs_attr_get(attrs_bundle, idx); in _uverbs_copy_from_or_zero() local
828 if (IS_ERR(attr)) in _uverbs_copy_from_or_zero()
829 return PTR_ERR(attr); in _uverbs_copy_from_or_zero()
831 min_size = min_t(size_t, size, attr->ptr_attr.len); in _uverbs_copy_from_or_zero()
833 if (uverbs_attr_ptr_is_inline(attr)) in _uverbs_copy_from_or_zero()
834 memcpy(to, &attr->ptr_attr.data, min_size); in _uverbs_copy_from_or_zero()
835 else if (copy_from_user(to, u64_to_user_ptr(attr->ptr_attr.data), in _uverbs_copy_from_or_zero()