Lines Matching +full:- +full:o
1 // SPDX-License-Identifier: BSD-2-Clause
19 return obj->flags & (TEE_DATA_FLAG_SHARE_WRITE | in pobj_need_usage_lock()
85 struct tee_pobj *o = NULL; in tee_pobj_get() local
91 TAILQ_FOREACH(o, &tee_pobjs, link) { in tee_pobj_get()
92 if ((obj_id_len == o->obj_id_len) && in tee_pobj_get()
93 (memcmp(obj_id, o->obj_id, obj_id_len) == 0) && in tee_pobj_get()
94 (memcmp(uuid, &o->uuid, sizeof(TEE_UUID)) == 0) && in tee_pobj_get()
95 (fops == o->fops)) { in tee_pobj_get()
96 *obj = o; 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()
117 o = calloc(1, sizeof(struct tee_pobj)); in tee_pobj_get()
118 if (!o) { in tee_pobj_get()
123 o->refcnt = 1; in tee_pobj_get()
124 memcpy(&o->uuid, uuid, sizeof(TEE_UUID)); in tee_pobj_get()
125 o->flags = flags; in tee_pobj_get()
126 o->fops = fops; in tee_pobj_get()
129 o->temporary = true; in tee_pobj_get()
130 o->creating = true; in tee_pobj_get()
133 o->obj_id = malloc(obj_id_len); in tee_pobj_get()
134 if (o->obj_id == NULL) { in tee_pobj_get()
135 free(o); in tee_pobj_get()
139 memcpy(o->obj_id, obj_id, obj_id_len); in tee_pobj_get()
140 o->obj_id_len = obj_id_len; in tee_pobj_get()
142 TAILQ_INSERT_TAIL(&tee_pobjs, o, link); in tee_pobj_get()
143 *obj = o; in tee_pobj_get()
156 po->temporary = false; in tee_pobj_create_final()
157 po->creating = false; in tee_pobj_create_final()
167 obj->refcnt--; in tee_pobj_release()
168 if (obj->refcnt == 0) { in tee_pobj_release()
170 free(obj->obj_id); in tee_pobj_release()
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()