Lines Matching refs:len

37 TEE_Result check_user_access(uint32_t flags, const void *uaddr, size_t len)  in check_user_access()  argument
44 return vm_check_access_rights(uctx, flags, (vaddr_t)uaddr, len); in check_user_access()
47 TEE_Result copy_from_user(void *kaddr, const void *uaddr, size_t len) in copy_from_user() argument
53 res = check_user_access(flags, uaddr, len); in copy_from_user()
56 memcpy(kaddr, uaddr, len); in copy_from_user()
63 TEE_Result copy_to_user(void *uaddr, const void *kaddr, size_t len) in copy_to_user() argument
69 res = check_user_access(flags, uaddr, len); in copy_to_user()
72 memcpy(uaddr, kaddr, len); in copy_to_user()
79 TEE_Result copy_from_user_private(void *kaddr, const void *uaddr, size_t len) in copy_from_user_private() argument
85 res = check_user_access(flags, uaddr, len); in copy_from_user_private()
88 memcpy(kaddr, uaddr, len); in copy_from_user_private()
95 TEE_Result copy_to_user_private(void *uaddr, const void *kaddr, size_t len) in copy_to_user_private() argument
101 res = check_user_access(flags, uaddr, len); in copy_to_user_private()
104 memcpy(uaddr, kaddr, len); in copy_to_user_private()
130 void *bb_alloc(size_t len) in bb_alloc() argument
136 if (uctx && !ADD_OVERFLOW(uctx->bbuf_offs, len, &offs) && in bb_alloc()
138 bb = maybe_tag_bb(uctx->bbuf + uctx->bbuf_offs, len); in bb_alloc()
144 static void bb_free_helper(struct user_mode_ctx *uctx, vaddr_t bb, size_t len) in bb_free_helper() argument
155 maybe_untag_bb((void *)bb, len); in bb_free_helper()
157 if (prev_offs + ROUNDUP(len, BB_ALIGNMENT) == uctx->bbuf_offs) in bb_free_helper()
162 void bb_free(void *bb, size_t len) in bb_free() argument
167 bb_free_helper(uctx, memtag_strip_tag_vaddr(bb), len); in bb_free()
170 void bb_free_wipe(void *bb, size_t len) in bb_free_wipe() argument
173 memset(bb, 0, len); in bb_free_wipe()
174 bb_free(bb, len); in bb_free_wipe()
209 size_t strnlen_user(const void *uaddr, size_t len) in strnlen_user() argument
215 if (!len) in strnlen_user()
219 res = check_user_access(flags, uaddr, len); in strnlen_user()
222 n = strnlen(uaddr, len); in strnlen_user()
231 size_t len), in __bb_memdup_user() argument
232 const void *src, size_t len, void **p) in __bb_memdup_user()
237 buf = bb_alloc(len); in __bb_memdup_user()
241 if (len) in __bb_memdup_user()
242 res = copy_func(buf, src, len); in __bb_memdup_user()
245 bb_free(buf, len); in __bb_memdup_user()
252 TEE_Result bb_memdup_user(const void *src, size_t len, void **p) in bb_memdup_user() argument
254 return __bb_memdup_user(copy_from_user, src, len, p); in bb_memdup_user()
257 TEE_Result bb_memdup_user_private(const void *src, size_t len, void **p) in bb_memdup_user_private() argument
259 return __bb_memdup_user(copy_from_user_private, src, len, p); in bb_memdup_user_private()