/xen/xen/arch/x86/pv/ |
A D | mm.h | 11 l1_pgentry_t l1e; in guest_get_eff_l1e() local 17 __copy_from_user(&l1e, in guest_get_eff_l1e() 20 l1e = l1e_empty(); in guest_get_eff_l1e() 22 return l1e; in guest_get_eff_l1e() 94 if ( likely(l1e_get_flags(l1e) & _PAGE_PRESENT) && in adjust_guest_l1e() 101 l1e_get_pfn(l1e)); in adjust_guest_l1e() 103 if ( !(l1e_get_flags(l1e) & _PAGE_USER) ) in adjust_guest_l1e() 104 l1e_add_flags(l1e, (_PAGE_GUEST_KERNEL | _PAGE_USER)); in adjust_guest_l1e() 106 if ( !(l1e_get_flags(l1e) & _PAGE_GUEST_KERNEL) ) in adjust_guest_l1e() 107 l1e_add_flags(l1e, (_PAGE_GLOBAL | _PAGE_USER)); in adjust_guest_l1e() [all …]
|
A D | mm.c | 66 l1_pgentry_t l1e; in guest_get_eff_kern_l1e() local 71 l1e = guest_get_eff_l1e(linear); in guest_get_eff_kern_l1e() 76 return l1e; in guest_get_eff_kern_l1e()
|
/xen/xen/arch/x86/mm/ |
A D | guest_walk.c | 225 gw->l1e = guest_l1e_from_gfn(start, flags); in guest_walk_tables() 346 gw->l1e = guest_l1e_from_gfn(start, flags); in guest_walk_tables() 366 guest_l1_table_offset(va) * sizeof(gw->l1e); in guest_walk_tables() 367 if ( !hvmemul_read_cache(v, l1gpa, &gw->l1e, sizeof(gw->l1e)) ) in guest_walk_tables() 369 gw->l1e = l1p[guest_l1_table_offset(va)]; in guest_walk_tables() 370 hvmemul_write_cache(v, l1gpa, &gw->l1e, sizeof(gw->l1e)); in guest_walk_tables() 373 gflags = guest_l1e_get_flags(gw->l1e); in guest_walk_tables() 378 if ( guest_l1e_rsvd_bits(v, gw->l1e) ) in guest_walk_tables() 418 unsigned int pkey = guest_l1e_get_pkey(gw->l1e); in guest_walk_tables() 481 if ( set_ad_bits(&l1p[guest_l1_table_offset(va)].l1, &gw->l1e.l1, in guest_walk_tables() [all …]
|
A D | p2m-pt.c | 708 l1_pgentry_t *l1e; in p2m_pt_get_entry() local 837 l1e = map_domain_page(mfn); in p2m_pt_get_entry() 838 l1e += l1_table_offset(addr); in p2m_pt_get_entry() 843 flags = l1e_get_flags(*l1e); in p2m_pt_get_entry() 857 unmap_domain_page(l1e); in p2m_pt_get_entry() 860 mfn = l1e_get_mfn(*l1e); in p2m_pt_get_entry() 862 unmap_domain_page(l1e); in p2m_pt_get_entry() 962 l1_pgentry_t *l1e; in p2m_pt_audit_p2m() local 1048 l1e = map_l1t_from_l2e(l2e[i2]); in p2m_pt_audit_p2m() 1061 mfn = l1e_get_pfn(l1e[i1]); in p2m_pt_audit_p2m() [all …]
|
/xen/xen/include/asm-x86/ |
A D | guest_pt.h | 296 guest_l1e_t l1e) in guest_l1e_rsvd_bits() argument 298 return l1e.l1 & (guest_rsvd_bits(v) | GUEST_L1_PAGETABLE_RSVD); in guest_l1e_rsvd_bits() 354 guest_l1e_t l1e; /* Guest's level 1 entry (or fabrication). */ member 371 if ( !(guest_l1e_get_flags(gw->l1e) & _PAGE_PRESENT) ) in guest_walk_to_gfn() 375 : guest_l1e_get_gfn(gw->l1e)); in guest_walk_to_gfn() 396 ASSERT(guest_l1e_get_flags(gw->l1e) & _PAGE_PRESENT); in guest_walk_to_page_order() 456 gw->l1e.l1, mfn_x(gw->l1mfn)); in print_gw()
|
A D | shadow.h | 214 static inline bool pv_l1tf_check_l1e(struct domain *d, l1_pgentry_t l1e) in pv_l1tf_check_l1e() argument 216 return pv_l1tf_check_pte(d, 1, l1e.l1); in pv_l1tf_check_l1e()
|
A D | page.h | 37 #define l1e_write_atomic(l1ep, l1e) \ argument 38 pte_write_atomic(&l1e_get_intpte(*(l1ep)), l1e_get_intpte(l1e)) 50 #define l1e_write(l1ep, l1e) \ argument 51 pte_write(&l1e_get_intpte(*(l1ep)), l1e_get_intpte(l1e))
|
A D | mm.h | 399 l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner); 400 void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner);
|
/xen/xen/arch/x86/ |
A D | debug.c | 72 l1_pgentry_t l1e, *l1t; in dbg_pv_va2mfn() local 103 l1e = l1t[l1_table_offset(vaddr)]; in dbg_pv_va2mfn() 105 mfn = l1e_get_mfn(l1e); in dbg_pv_va2mfn()
|
A D | traps.c | 1301 l1_pgentry_t l1e, *l1t; in __page_fault_type() local 1359 l1e = l1e_read_atomic(&l1t[l1_table_offset(addr)]); in __page_fault_type() 1360 mfn = l1e_get_pfn(l1e); in __page_fault_type() 1362 if ( ((l1e_get_flags(l1e) & required_flags) != required_flags) || in __page_fault_type() 1363 (l1e_get_flags(l1e) & disallowed_flags) ) in __page_fault_type() 1365 page_user &= l1e_get_flags(l1e); in __page_fault_type()
|
A D | mm.c | 854 l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner) in get_page_from_l1e() argument 856 unsigned long mfn = l1e_get_pfn(l1e); in get_page_from_l1e() 858 uint32_t l1f = l1e_get_flags(l1e); in get_page_from_l1e() 1048 l1e_get_intpte(l1e), l1e_owner->domain_id); in get_page_from_l1e() 1059 l1e_get_intpte(l1e), l1e_owner->domain_id, pg_owner->domain_id); in get_page_from_l1e() 1214 void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner) in put_page_from_l1e() argument 1216 unsigned long pfn = l1e_get_pfn(l1e); in put_page_from_l1e() 1220 if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || is_iomem_page(_mfn(pfn)) ) in put_page_from_l1e() 1245 if ( (l1e_get_flags(l1e) & _PAGE_GNTTAB) && in put_page_from_l1e() 1250 l1e_get_intpte(l1e)); in put_page_from_l1e() [all …]
|
/xen/xen/arch/x86/x86_64/ |
A D | traps.c | 191 l1_pgentry_t l1e, *l1t; in show_page_walk() local 238 l1e = l1t[l1_table_offset(addr)]; in show_page_walk() 240 mfn = l1e_get_pfn(l1e); in show_page_walk() 244 l1_table_offset(addr), l1e_get_intpte(l1e), pfn); in show_page_walk()
|
A D | mm.c | 53 l1_pgentry_t l1e, *l1t; in do_page_walk() local 89 l1e = l1t[l1_table_offset(addr)]; in do_page_walk() 91 mfn = l1e_get_pfn(l1e); in do_page_walk() 92 if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) ) in do_page_walk()
|
/xen/xen/arch/x86/mm/shadow/ |
A D | multi.c | 262 mismatch |= (gw->l1e.l1 != l1p[guest_l1_table_offset(va)].l1); in shadow_check_gwalk() 283 return gw->l1e.l1 != nl1e.l1; in shadow_check_gl1e() 2577 _gfn(gfn_x(guest_l1e_get_gfn(gw->l1e)) + i), in sh_prefetch() 2578 guest_l1e_get_flags(gw->l1e)); in sh_prefetch() 3162 l1e_propagate_from_guest(v, gw.l1e, gmfn, &sl1e, ft, p2mt); in sh_page_fault() 3176 snp[guest_l1_table_offset(va)] = gw.l1e; in sh_page_fault() 3236 trace_shadow_fixup(gw.l1e, va); in sh_page_fault() 3478 trace_shadow_emulate(gw.l1e, va); in sh_page_fault() 3512 trace_not_shadow_fault(gw.l1e, va); in sh_page_fault()
|