Lines Matching defs:mobj
19 #include <mm/mobj.h>
140 if (mobj_is_paged(r->mobj)) {
187 size_t sz = MIN(end - va, mobj_get_phys_granule(r->mobj));
194 if (mobj_get_pa(r->mobj, offset, granule, &pa))
206 assert(!mobj_is_paged(r->mobj));
258 /* Check that the mobj is defined for the entire range */
261 if (offs_plus_size > ROUNDUP(reg->mobj->size, SMALL_PAGE_SIZE))
295 uint32_t prot, uint32_t flags, struct mobj *mobj,
310 if (!mobj_is_paged(mobj)) {
313 res = mobj_get_mem_type(mobj, &mem_type);
319 if (mobj_is_secure(mobj))
322 reg->mobj = mobj_get(mobj);
337 if (mobj_is_paged(mobj)) {
338 struct fobj *fobj = mobj_get_fobj(mobj);
367 mobj_put(reg->mobj);
424 if (mobj_is_paged(r->mobj)) {
433 r2->mobj = mobj_get(r->mobj);
526 if (r->mobj != r_next->mobj ||
535 mobj_put(r_next->mobj);
547 * essentials are, mobj/fobj, attr, flags and the offset should be
550 * Note that vm_remap() depends on mobj/fobj to be the same.
553 r0->mobj == r->mobj && rn->offset == r->offset + r->size;
578 if (mobj_is_paged(r0->mobj)) {
579 fobj = mobj_get_fobj(r0->mobj);
769 if (!mobj_is_paged(r->mobj)) {
788 if (mobj_is_paged(r->mobj)) {
809 mobj_put(reg->mobj);
853 struct mobj *mobj = NULL;
859 thread_get_user_kcode(&mobj, &offs, &va, &sz);
865 mobj, offs);
870 thread_get_user_kdata(&mobj, &offs, &va, &sz);
873 mobj, offs);
932 if (mem->mobj != region->mobj)
935 phys_offs = mobj_get_phys_offs(mem->mobj,
956 if (!m0->mobj && !m1->mobj)
958 if (!m0->mobj)
960 if (!m1->mobj)
963 ret = CMP_TRILEAN(mobj_is_secure(m0->mobj), mobj_is_secure(m1->mobj));
967 ret = CMP_TRILEAN((vaddr_t)m0->mobj, (vaddr_t)m1->mobj);
995 phys_offs = mobj_get_phys_offs(param->u[n].mem.mobj,
997 mem[n].mobj = param->u[n].mem.mobj;
1012 * Sort arguments so NULL mobj is last, secure mobjs first, then by
1013 * mobj pointer value since those entries can't be merged either,
1021 for (n = 1, m = 0; n < TEE_NUM_PARAMS && mem[n].mobj; n++) {
1022 if (mem[n].mobj == mem[m].mobj &&
1038 if (mem[0].mobj)
1049 mem[n].mobj, mem[n].offs);
1061 if (!param->u[n].mem.mobj)
1131 struct mobj **mobj, size_t *offs)
1136 if (!r->mobj)
1141 poffs = mobj_get_phys_offs(r->mobj,
1143 *mobj = r->mobj;
1169 * mobj and input user address may each include
1176 granule = MAX(region->mobj->phys_granule,
1183 res = mobj_get_pa(region->mobj, offset, granule, &p);
1213 /* pa2va is expected only for memory tracked through mobj */
1214 if (!region->mobj)
1218 granule = region->mobj->phys_granule;
1233 if (mobj_get_pa(region->mobj, ofs, granule, &p))
1237 /* Remove region offset (mobj phys offset) */
1328 struct mobj *vm_get_mobj(struct user_mode_ctx *uctx, vaddr_t va, size_t *len,
1346 return mobj_get(r->mobj);