Home
last modified time | relevance | path

Searched refs:fobj (Results 1 – 18 of 18) sorted by relevance

/optee_os/core/include/mm/
H A Dfobj.h22 struct fobj { struct
41 void (*free)(struct fobj *fobj);
43 TEE_Result (*load_page)(struct fobj *fobj, unsigned int page_idx,
45 TEE_Result (*save_page)(struct fobj *fobj, unsigned int page_idx,
47 vaddr_t (*get_iv_vaddr)(struct fobj *fobj, unsigned int page_idx);
49 paddr_t (*get_pa)(struct fobj *fobj, unsigned int page_idx);
62 struct fobj *fobj_locked_paged_alloc(unsigned int num_pages);
73 struct fobj *fobj_rw_paged_alloc(unsigned int num_pages);
87 struct fobj *fobj_ro_paged_alloc(unsigned int num_pages, void *hashes,
106 struct fobj *fobj_ro_reloc_paged_alloc(unsigned int num_pages, void *hashes,
[all …]
H A Dtee_pager.h63 vaddr_t tee_pager_init_iv_region(struct fobj *fobj);
87 struct fobj *fobj);
103 struct fobj *fobj, uint32_t prot);
107 vaddr_t base __unused, struct fobj *fobj __unused, in tee_pager_add_um_region()
283 void tee_pager_invalidate_fobj(struct fobj *fobj);
H A Dfile.h23 struct fobj *fobj; member
65 TEE_Result file_add_slice(struct file *f, struct fobj *fobj,
H A Dtee_mmu_types.h116 struct fobj *fobj; member
H A Dmobj.h42 struct fobj *(*get_fobj)(struct mobj *mobj);
195 static inline struct fobj *mobj_get_fobj(struct mobj *mobj) in mobj_get_fobj()
385 struct mobj *mobj_with_fobj_alloc(struct fobj *fobj, struct file *file,
/optee_os/core/mm/
H A Dfobj.c52 struct fobj fobj; member
57 struct fobj fobj; member
68 static void fobj_init(struct fobj *fobj, const struct fobj_ops *ops, in fobj_init() argument
71 fobj->ops = ops; in fobj_init()
72 fobj->num_pages = num_pages; in fobj_init()
73 refcount_set(&fobj->refc, 1); in fobj_init()
74 TAILQ_INIT(&fobj->regions); in fobj_init()
77 static void fobj_uninit(struct fobj *fobj) in fobj_uninit() argument
79 assert(!refcount_val(&fobj->refc)); in fobj_uninit()
80 assert(TAILQ_EMPTY(&fobj->regions)); in fobj_uninit()
[all …]
H A Dfile.c74 fobj_put(fse->slice.fobj); in file_free()
81 TEE_Result file_add_slice(struct file *f, struct fobj *fobj, in file_add_slice() argument
95 fse->slice.fobj = fobj_get(fobj); in file_add_slice()
96 if (!fse->slice.fobj || in file_add_slice()
97 ADD_OVERFLOW(page_offset, fse->slice.fobj->num_pages, &s)) { in file_add_slice()
98 fobj_put(fse->slice.fobj); in file_add_slice()
189 page_offset < fs->page_offset + fs->fobj->num_pages) in file_find_slice()
H A Dmobj.c357 struct fobj *fobj; member
365 struct mobj *mobj_with_fobj_alloc(struct fobj *fobj, struct file *file, in mobj_with_fobj_alloc() argument
372 if (!fobj) in mobj_with_fobj_alloc()
383 m->mobj.size = fobj->num_pages * SMALL_PAGE_SIZE; in mobj_with_fobj_alloc()
385 m->fobj = fobj_get(fobj); in mobj_with_fobj_alloc()
417 fobj_put(m->fobj); in mobj_with_fobj_free()
422 static struct fobj *mobj_with_fobj_get_fobj(struct mobj *mobj) in mobj_with_fobj_get_fobj()
424 return fobj_get(to_mobj_with_fobj(mobj)->fobj); in mobj_with_fobj_get_fobj()
446 if (!f->fobj->ops->get_pa) { in mobj_with_fobj_get_pa()
451 p = f->fobj->ops->get_pa(f->fobj, offs / SMALL_PAGE_SIZE) + in mobj_with_fobj_get_pa()
[all …]
H A Dsub.mk2 srcs-y += fobj.c
3 cflags-fobj.c-$(CFG_CORE_PAGE_TAG_AND_IV) := -Wno-missing-noreturn
H A Dvm.c338 struct fobj *fobj = mobj_get_fobj(mobj); in vm_map_pad() local
340 if (!fobj) { in vm_map_pad()
345 res = tee_pager_add_um_region(uctx, reg->va, fobj, prot); in vm_map_pad()
346 fobj_put(fobj); in vm_map_pad()
566 struct fobj *fobj = NULL; in vm_remap() local
579 fobj = mobj_get_fobj(r0->mobj); in vm_remap()
580 if (!fobj) in vm_remap()
616 if (!fobj) in vm_remap()
619 res = tee_pager_add_um_region(uctx, r->va, fobj, in vm_remap()
656 fobj_put(fobj); in vm_remap()
[all …]
/optee_os/core/arch/arm/mm/
H A Dtee_pager.c55 struct fobj *fobj; member
286 if (pmem->fobj != reg->fobj) in pmem_is_covered_by_region()
322 assert(pmem->fobj && pmem->fobj_pgidx != INVALID_PGIDX); in pmem_get_region_tblidx()
486 assert(!pmem->fobj && pmem->fobj_pgidx == INVALID_PGIDX); in pmem_assign_fobj_page()
492 assert(p->fobj != reg->fobj || p->fobj_pgidx != fobj_pgidx); in pmem_assign_fobj_page()
494 pmem->fobj = reg->fobj; in pmem_assign_fobj_page()
500 pmem->fobj = NULL; in pmem_clear()
511 TAILQ_FOREACH(reg, &pmem->fobj->regions, fobj_link) { in pmem_unmap()
595 TAILQ_INSERT_TAIL(&reg->fobj->regions, reg, fobj_link); in region_insert()
626 struct fobj *fobj) in tee_pager_add_core_region() argument
[all …]
/optee_os/core/arch/arm/kernel/
H A Dboot.c459 static struct fobj *ro_paged_alloc(tee_mm_entry_t *mm, void *hashes, in ro_paged_alloc()
489 struct fobj *fobj = NULL; in init_pager_runtime() local
598 fobj = ro_paged_alloc(mm, hashes, paged_store); in init_pager_runtime()
599 assert(fobj); in init_pager_runtime()
601 fobj); in init_pager_runtime()
602 fobj_put(fobj); in init_pager_runtime()
H A Dsecure_partition.c503 struct fobj *fobj = NULL; in load_binary_sp() local
516 fobj = fobj_sec_mem_alloc(bb_num_pages); in load_binary_sp()
517 mobj = mobj_with_fobj_alloc(fobj, NULL, TEE_MATTR_MEM_TYPE_TAGGED); in load_binary_sp()
518 fobj_put(fobj); in load_binary_sp()
709 struct fobj *f = NULL; in copy_and_map_fdt()
780 struct fobj *f = NULL; in create_and_map_boot_info()
1336 struct fobj *f = NULL; in handle_tpm_event_log()
H A Dstmm_sp.c195 struct fobj *fobj = fobj_ta_mem_alloc(num_pgs); in alloc_and_map_sp_fobj() local
199 mobj = mobj_with_fobj_alloc(fobj, NULL, TEE_MATTR_MEM_TYPE_TAGGED); in alloc_and_map_sp_fobj()
200 fobj_put(fobj); in alloc_and_map_sp_fobj()
/optee_os/core/kernel/
H A Dthread.c539 struct fobj *fobj = NULL; in init_thread_stacks() local
551 fobj = fobj_locked_paged_alloc(num_pages); in init_thread_stacks()
555 PAGED_REGION_TYPE_LOCK, fobj); in init_thread_stacks()
556 fobj_put(fobj); in init_thread_stacks()
H A Dldelf_loader.c35 struct fobj *fobj = fobj_ta_mem_alloc(num_pgs); in alloc_and_map_fobj() local
36 struct mobj *mobj = mobj_with_fobj_alloc(fobj, NULL, in alloc_and_map_fobj()
40 fobj_put(fobj); in alloc_and_map_fobj()
H A Dldelf_syscalls.c48 struct fobj *f = NULL; in ldelf_syscall_map_zi()
372 num_pages > fs->fobj->num_pages) { in ldelf_syscall_map_bin()
383 mobj = mobj_with_fobj_alloc(fs->fobj, binh->f, in ldelf_syscall_map_bin()
396 struct fobj *f = fobj_ta_mem_alloc(num_pages); in ldelf_syscall_map_bin()
/optee_os/core/pta/
H A Dsystem.c149 struct fobj *f = NULL; in system_map_zi()