Lines Matching refs:rop
424 static void rop_init(struct fobj_rop *rop, const struct fobj_ops *ops, in rop_init() argument
427 rop->hashes = hashes; in rop_init()
428 rop->store = store; in rop_init()
429 fobj_init(&rop->fobj, ops, num_pages); in rop_init()
435 struct fobj_rop *rop = NULL; in fobj_ro_paged_alloc() local
439 rop = calloc(1, sizeof(*rop)); in fobj_ro_paged_alloc()
440 if (!rop) in fobj_ro_paged_alloc()
443 rop_init(rop, &ops_ro_paged, num_pages, hashes, store); in fobj_ro_paged_alloc()
445 return &rop->fobj; in fobj_ro_paged_alloc()
455 static void rop_uninit(struct fobj_rop *rop) in rop_uninit() argument
457 fobj_uninit(&rop->fobj); in rop_uninit()
458 tee_mm_free(nex_phys_mem_mm_find(virt_to_phys(rop->store))); in rop_uninit()
459 free(rop->hashes); in rop_uninit()
464 struct fobj_rop *rop = to_rop(fobj); in rop_free() local
466 rop_uninit(rop); in rop_free()
467 free(rop); in rop_free()
470 static TEE_Result rop_load_page_helper(struct fobj_rop *rop, in rop_load_page_helper() argument
473 const uint8_t *hash = rop->hashes + page_idx * TEE_SHA256_HASH_SIZE; in rop_load_page_helper()
474 const uint8_t *src = rop->store + page_idx * SMALL_PAGE_SIZE; in rop_load_page_helper()
476 assert(refcount_val(&rop->fobj.refc)); in rop_load_page_helper()
477 assert(page_idx < rop->fobj.num_pages); in rop_load_page_helper()
532 struct fobj_rop rop; member
566 unsigned int npg = rrp->rop.fobj.num_pages; in init_rels()
621 rop_init(&rrp->rop, &ops_ro_reloc_paged, num_pages, hashes, store); in fobj_ro_reloc_paged_alloc()
627 return &rrp->rop.fobj; in fobj_ro_reloc_paged_alloc()
634 return container_of(fobj, struct fobj_ro_reloc_paged, rop.fobj); in to_rrp()
641 rop_uninit(&rrp->rop); in rrp_free()
654 res = rop_load_page_helper(&rrp->rop, page_idx, va); in rrp_load_page()