Lines Matching refs:pfn

5 static xen_pfn_t pfn_to_mfn(const struct xc_sr_context *ctx, xen_pfn_t pfn)  in pfn_to_mfn()  argument
7 assert(pfn <= ctx->x86_pv.max_pfn); in pfn_to_mfn()
9 return xc_pfn_to_mfn(pfn, ctx->x86_pv.p2m, ctx->x86_pv.width); in pfn_to_mfn()
137 xen_pfn_t pfn, mfn; in process_start_info() local
141 pfn = GET_FIELD(vcpu, user_regs.edx, ctx->x86_pv.width); in process_start_info()
143 if ( pfn > ctx->x86_pv.max_pfn ) in process_start_info()
145 ERROR("Start Info pfn %#lx out of range", pfn); in process_start_info()
148 else if ( ctx->x86_pv.restore.pfn_types[pfn] != XEN_DOMCTL_PFINFO_NOTAB ) in process_start_info()
150 ERROR("Start Info pfn %#lx has bad type %u", pfn, in process_start_info()
151 (ctx->x86_pv.restore.pfn_types[pfn] >> in process_start_info()
156 mfn = pfn_to_mfn(ctx, pfn); in process_start_info()
174 pfn = GET_FIELD(guest_start_info, store_mfn, ctx->x86_pv.width); in process_start_info()
175 if ( pfn > ctx->x86_pv.max_pfn ) in process_start_info()
177 ERROR("XenStore pfn %#lx out of range", pfn); in process_start_info()
181 mfn = pfn_to_mfn(ctx, pfn); in process_start_info()
195 pfn = GET_FIELD(guest_start_info, console.domU.mfn, ctx->x86_pv.width); in process_start_info()
196 if ( pfn > ctx->x86_pv.max_pfn ) in process_start_info()
198 ERROR("Console pfn %#lx out of range", pfn); in process_start_info()
202 mfn = pfn_to_mfn(ctx, pfn); in process_start_info()
239 xen_pfn_t pfn, mfn; in process_vcpu_basic() local
272 pfn = GET_FIELD(&vcpu, gdt_frames[i], ctx->x86_pv.width); in process_vcpu_basic()
273 if ( pfn > ctx->x86_pv.max_pfn ) in process_vcpu_basic()
275 ERROR("GDT frame %u (pfn %#lx) out of range", i, pfn); in process_vcpu_basic()
278 else if ( (ctx->x86_pv.restore.pfn_types[pfn] != in process_vcpu_basic()
281 ERROR("GDT frame %u (pfn %#lx) has bad type %u", i, pfn, in process_vcpu_basic()
282 (ctx->x86_pv.restore.pfn_types[pfn] >> in process_vcpu_basic()
287 mfn = pfn_to_mfn(ctx, pfn); in process_vcpu_basic()
299 pfn = cr3_to_mfn(ctx, GET_FIELD(&vcpu, ctrlreg[3], ctx->x86_pv.width)); in process_vcpu_basic()
300 if ( pfn > ctx->x86_pv.max_pfn ) in process_vcpu_basic()
302 ERROR("cr3 (pfn %#lx) out of range", pfn); in process_vcpu_basic()
305 else if ( (ctx->x86_pv.restore.pfn_types[pfn] & in process_vcpu_basic()
310 ERROR("cr3 (pfn %#lx) has bad type %u, expected %u", pfn, in process_vcpu_basic()
311 (ctx->x86_pv.restore.pfn_types[pfn] >> in process_vcpu_basic()
317 mfn = pfn_to_mfn(ctx, pfn); in process_vcpu_basic()
330 pfn = vcpu.x64.ctrlreg[1] >> PAGE_SHIFT; in process_vcpu_basic()
332 if ( pfn > ctx->x86_pv.max_pfn ) in process_vcpu_basic()
334 ERROR("cr1 (pfn %#lx) out of range", pfn); in process_vcpu_basic()
337 else if ( (ctx->x86_pv.restore.pfn_types[pfn] & in process_vcpu_basic()
342 ERROR("cr1 (pfn %#lx) has bad type %u, expected %u", pfn, in process_vcpu_basic()
343 (ctx->x86_pv.restore.pfn_types[pfn] >> in process_vcpu_basic()
349 mfn = pfn_to_mfn(ctx, pfn); in process_vcpu_basic()
531 xen_pfn_t mfn, pfn, *guest_p2m = NULL; in update_guest_p2m() local
537 pfn = ctx->x86_pv.p2m_pfns[i]; in update_guest_p2m()
539 if ( pfn > ctx->x86_pv.max_pfn ) in update_guest_p2m()
542 pfn, i); in update_guest_p2m()
545 else if ( (ctx->x86_pv.restore.pfn_types[pfn] != in update_guest_p2m()
548 ERROR("pfn (%#lx) for p2m_frame_list[%u] has bad type %u", pfn, i, in update_guest_p2m()
549 (ctx->x86_pv.restore.pfn_types[pfn] >> in update_guest_p2m()
554 mfn = pfn_to_mfn(ctx, pfn); in update_guest_p2m()
911 static bool x86_pv_pfn_is_valid(const struct xc_sr_context *ctx, xen_pfn_t pfn) in x86_pv_pfn_is_valid() argument
913 return pfn <= ctx->x86_pv.max_pfn; in x86_pv_pfn_is_valid()
917 static void x86_pv_set_page_type(struct xc_sr_context *ctx, xen_pfn_t pfn, in x86_pv_set_page_type() argument
920 assert(pfn <= ctx->x86_pv.max_pfn); in x86_pv_set_page_type()
922 ctx->x86_pv.restore.pfn_types[pfn] = type; in x86_pv_set_page_type()
926 static void x86_pv_set_gfn(struct xc_sr_context *ctx, xen_pfn_t pfn, in x86_pv_set_gfn() argument
929 assert(pfn <= ctx->x86_pv.max_pfn); in x86_pv_set_gfn()
933 ((uint64_t *)ctx->x86_pv.p2m)[pfn] = mfn == INVALID_MFN ? ~0ULL : mfn; in x86_pv_set_gfn()
936 ((uint32_t *)ctx->x86_pv.p2m)[pfn] = mfn; in x86_pv_set_gfn()
966 xen_pfn_t pfn = pte_to_frame(pte); in x86_pv_localise_page() local
969 if ( pfn == INVALID_MFN ) in x86_pv_localise_page()
978 if ( pfn_to_mfn(ctx, pfn) == INVALID_MFN ) in x86_pv_localise_page()
979 pfns[to_populate++] = pfn; in x86_pv_localise_page()
992 xen_pfn_t mfn, pfn; in x86_pv_localise_page() local
994 pfn = pte_to_frame(pte); in x86_pv_localise_page()
995 mfn = pfn_to_mfn(ctx, pfn); in x86_pv_localise_page()