Lines Matching refs:obj
16 static bool pobj_need_usage_lock(struct tee_pobj *obj) in pobj_need_usage_lock() argument
19 return obj->flags & (TEE_DATA_FLAG_SHARE_WRITE | in pobj_need_usage_lock()
23 void tee_pobj_lock_usage(struct tee_pobj *obj) in tee_pobj_lock_usage() argument
25 if (pobj_need_usage_lock(obj)) in tee_pobj_lock_usage()
29 void tee_pobj_unlock_usage(struct tee_pobj *obj) in tee_pobj_unlock_usage() argument
31 if (pobj_need_usage_lock(obj)) in tee_pobj_unlock_usage()
82 struct tee_pobj **obj) in tee_pobj_get() argument
87 *obj = NULL; in tee_pobj_get()
96 *obj = o; in tee_pobj_get()
100 if (*obj) { in tee_pobj_get()
102 (*obj)->refcnt++; in tee_pobj_get()
105 if ((*obj)->creating || (usage == TEE_POBJ_USAGE_CREATE && in tee_pobj_get()
110 res = tee_pobj_check_access((*obj)->flags, flags); in tee_pobj_get()
112 (*obj)->refcnt++; in tee_pobj_get()
143 *obj = o; in tee_pobj_get()
148 *obj = NULL; in tee_pobj_get()
161 TEE_Result tee_pobj_release(struct tee_pobj *obj) in tee_pobj_release() argument
163 if (obj == NULL) in tee_pobj_release()
167 obj->refcnt--; in tee_pobj_release()
168 if (obj->refcnt == 0) { in tee_pobj_release()
169 TAILQ_REMOVE(&tee_pobjs, obj, link); in tee_pobj_release()
170 free(obj->obj_id); in tee_pobj_release()
171 free(obj); in tee_pobj_release()
178 TEE_Result tee_pobj_rename(struct tee_pobj *obj, void *obj_id, in tee_pobj_rename() argument
184 if (obj == NULL || obj_id == NULL) in tee_pobj_rename()
188 if (obj->refcnt != 1) { in tee_pobj_rename()
201 free(obj->obj_id); in tee_pobj_rename()
202 obj->obj_id = new_obj_id; in tee_pobj_rename()
203 obj->obj_id_len = obj_id_len; in tee_pobj_rename()