/xen/xen/arch/x86/mm/ |
A D | guest_walk.c | 278 if ( !hvmemul_read_cache(v, l2gpa, &gw->l2e, sizeof(gw->l2e)) ) in guest_walk_tables() 280 gw->l2e = l2p[guest_l2_table_offset(va)]; in guest_walk_tables() 281 hvmemul_write_cache(v, l2gpa, &gw->l2e, sizeof(gw->l2e)); in guest_walk_tables() 285 gflags = guest_l2e_get_flags(gw->l2e); in guest_walk_tables() 295 gw->l2e.l2 &= ~_PAGE_PSE; in guest_walk_tables() 299 else if ( guest_l2e_rsvd_bits(v, gw->l2e) ) in guest_walk_tables() 320 gfn_t start = guest_l2e_get_gfn(gw->l2e); in guest_walk_tables() 333 flags |= (guest_l2e_get_flags(gw->l2e) in guest_walk_tables() 355 guest_l2e_get_gfn(gw->l2e), in guest_walk_tables() 365 l1gpa = gfn_to_gaddr(guest_l2e_get_gfn(gw->l2e)) + in guest_walk_tables() [all …]
|
A D | p2m-pt.c | 707 l2_pgentry_t *l2e; in p2m_pt_get_entry() local 799 l2e = map_domain_page(mfn); in p2m_pt_get_entry() 800 l2e += l2_table_offset(addr); in p2m_pt_get_entry() 805 flags = l2e_get_flags(*l2e); in p2m_pt_get_entry() 818 unmap_domain_page(l2e); in p2m_pt_get_entry() 826 unmap_domain_page(l2e); in p2m_pt_get_entry() 832 mfn = l2e_get_mfn(*l2e); in p2m_pt_get_entry() 833 if ( needs_recalc(l2, *l2e) ) in p2m_pt_get_entry() 835 unmap_domain_page(l2e); in p2m_pt_get_entry() 961 l2_pgentry_t *l2e; in p2m_pt_audit_p2m() local [all …]
|
/xen/xen/arch/x86/x86_64/ |
A D | mm.c | 52 l2_pgentry_t l2e, *l2t; in do_page_walk() local 77 l2e = l2t[l2_table_offset(addr)]; in do_page_walk() 79 mfn = l2e_get_pfn(l2e); in do_page_walk() 133 l2_pgentry_t l2e; in m2p_mapped() local 161 l2_pgentry_t l2e; in share_hotadd_m2p_table() local 204 m2p_start_mfn = l2e_get_mfn(l2e); in share_hotadd_m2p_table() 697 l2_pgentry_t l2e; in cleanup_frame_table() local 816 l2_pgentry_t l2e; in subarch_init_memory() local 887 l2_pgentry_t l2e; in subarch_memory_op() local 1190 l2_pgentry_t l2e, idle_l2e; in handle_memadd_fault() local [all …]
|
A D | traps.c | 190 l2_pgentry_t l2e, *l2t; in show_page_walk() local 224 l2e = l2t[l2_table_offset(addr)]; in show_page_walk() 226 mfn = l2e_get_pfn(l2e); in show_page_walk() 230 l2_table_offset(addr), l2e_get_intpte(l2e), pfn, in show_page_walk() 231 (l2e_get_flags(l2e) & _PAGE_PSE) ? " (PSE)" : ""); in show_page_walk() 232 if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || in show_page_walk() 233 (l2e_get_flags(l2e) & _PAGE_PSE) || in show_page_walk()
|
/xen/xen/arch/x86/pv/ |
A D | mm.c | 35 l2_pgentry_t l2e; in map_guest_l1e() local 44 if ( __copy_from_user(&l2e, in map_guest_l1e() 50 if ( (l2e_get_flags(l2e) & (_PAGE_PRESENT | _PAGE_PSE)) != _PAGE_PRESENT ) in map_guest_l1e() 53 *gl1mfn = l2e_get_mfn(l2e); in map_guest_l1e()
|
A D | mm.h | 113 static inline l2_pgentry_t adjust_guest_l2e(l2_pgentry_t l2e, in adjust_guest_l2e() argument 116 if ( likely(l2e_get_flags(l2e) & _PAGE_PRESENT) && in adjust_guest_l2e() 118 l2e_add_flags(l2e, _PAGE_USER); in adjust_guest_l2e() 120 return l2e; in adjust_guest_l2e()
|
A D | shim.c | 170 l2_pgentry_t l2e = l2e_from_l3e(l3e, l2_table_offset(va)); in replace_va_mapping() local 171 l1_pgentry_t *pl1e = map_l1t_from_l2e(l2e) + l1_table_offset(va); in replace_va_mapping()
|
/xen/xen/arch/x86/ |
A D | debug.c | 71 l2_pgentry_t l2e, *l2t; in dbg_pv_va2mfn() local 95 l2e = l2t[l2_table_offset(vaddr)]; in dbg_pv_va2mfn() 97 mfn = l2e_get_mfn(l2e); in dbg_pv_va2mfn() 98 if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || in dbg_pv_va2mfn() 99 (l2e_get_flags(l2e) & _PAGE_PSE) ) in dbg_pv_va2mfn()
|
A D | traps.c | 1300 l2_pgentry_t l2e, *l2t; in __page_fault_type() local 1348 l2e = l2e_read_atomic(&l2t[l2_table_offset(addr)]); in __page_fault_type() 1349 mfn = l2e_get_pfn(l2e); in __page_fault_type() 1351 if ( ((l2e_get_flags(l2e) & required_flags) != required_flags) || in __page_fault_type() 1352 (l2e_get_flags(l2e) & disallowed_flags) ) in __page_fault_type() 1354 page_user &= l2e_get_flags(l2e); in __page_fault_type() 1355 if ( l2e_get_flags(l2e) & _PAGE_PSE ) in __page_fault_type()
|
A D | mm.c | 1145 unsigned long mfn = l2e_get_pfn(l2e); in get_page_from_l2e() 1148 if ( unlikely((l2e_get_flags(l2e) & L2_DISALLOW_MASK)) ) in get_page_from_l2e() 1151 l2e_get_flags(l2e) & L2_DISALLOW_MASK); in get_page_from_l2e() 1309 if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || mfn_eq(l2e_get_mfn(l2e), l2mfn) ) in put_page_from_l2e() 1312 if ( l2e_get_flags(l2e) & _PAGE_PSE ) in put_page_from_l2e() 1313 return put_data_pages(l2e_get_page(l2e), in put_page_from_l2e() 1314 l2e_get_flags(l2e) & _PAGE_RW, in put_page_from_l2e() 1459 l2_pgentry_t l2e = pl2e[i]; in promote_l2_table() local 1465 else if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) ) in promote_l2_table() 1467 if ( !pv_l1tf_check_l2e(d, l2e) ) in promote_l2_table() [all …]
|
A D | smpboot.c | 907 l2_pgentry_t l2e = l2e_from_l3e(l3e, l2_table_offset(stub_linear)); in cleanup_cpu_root_pgt() local 908 l1_pgentry_t *l1t = map_l1t_from_l2e(l2e); in cleanup_cpu_root_pgt()
|
/xen/xen/include/asm-x86/ |
A D | guest_pt.h | 302 guest_l2e_t l2e) in guest_l2e_rsvd_bits() argument 306 return ((l2e.l2 & (rsvd_bits | GUEST_L2_PAGETABLE_RSVD | in guest_l2e_rsvd_bits() 308 ((l2e.l2 & _PAGE_PSE) && in guest_l2e_rsvd_bits() 309 (l2e.l2 & ((GUEST_PAGING_LEVELS == 2 && guest_can_use_pse36(v->domain)) in guest_l2e_rsvd_bits() 351 guest_l2e_t l2e; /* Guest's level 2 entry */ member 401 if ( guest_l2e_get_flags(gw->l2e) & _PAGE_PSE ) in guest_walk_to_page_order() 450 gw->l2e.l2, mfn_x(gw->l2mfn)); in print_gw()
|
A D | shadow.h | 219 static inline bool pv_l1tf_check_l2e(struct domain *d, l2_pgentry_t l2e) in pv_l1tf_check_l2e() argument 221 return pv_l1tf_check_pte(d, 2, l2e.l2); in pv_l1tf_check_l2e()
|
A D | page.h | 39 #define l2e_write_atomic(l2ep, l2e) \ argument 40 pte_write_atomic(&l2e_get_intpte(*(l2ep)), l2e_get_intpte(l2e)) 52 #define l2e_write(l2ep, l2e) \ argument 53 pte_write(&l2e_get_intpte(*(l2ep)), l2e_get_intpte(l2e))
|
/xen/xen/arch/x86/x86_64/compat/ |
A D | mm.c | 14 l2_pgentry_t l2e; in compat_arch_memory_op() local 128 l2e = compat_idle_pg_table_l2[l2_table_offset(v)]; in compat_arch_memory_op() 129 if ( l2e_get_flags(l2e) & _PAGE_PRESENT ) in compat_arch_memory_op() 130 mfn = l2e_get_pfn(l2e); in compat_arch_memory_op()
|
/xen/xen/arch/x86/mm/shadow/ |
A D | multi.c | 255 mismatch |= (gw->l2e.l2 != l2p[guest_l2_table_offset(va)].l2); in shadow_check_gwalk() 259 (guest_l2e_get_flags(gw->l2e) & _PAGE_PSE)) ) in shadow_check_gwalk() 331 (guest_l2e_get_flags(gw->l2e) & _PAGE_PSE)) in gw_remove_write_accesses() 377 else if ( (guest_l2e_get_flags(gw->l2e) & _PAGE_PRESENT) in sh_audit_gw() 378 && (guest_l2e_get_flags(gw->l2e) & _PAGE_PSE) in sh_audit_gw() 380 (smfn = get_fl1_shadow_status(d, guest_l2e_get_gfn(gw->l2e)))) ) in sh_audit_gw() 1770 || !(guest_l2e_get_flags(gw->l2e) & _PAGE_PSE)) ) in shadow_get_and_create_l1e() 1778 int r, flags = guest_l2e_get_flags(gw->l2e); in shadow_get_and_create_l1e() 1785 gfn_t l2gfn = guest_l2e_get_gfn(gw->l2e); in shadow_get_and_create_l1e() 1805 l2e_propagate_from_guest(v, gw->l2e, *sl1mfn, &new_sl2e, ft); in shadow_get_and_create_l1e() [all …]
|