clear_domain_page(mfn);
d->arch.hvm.vmx.apic_access_mfn = mfn;
- return set_mmio_p2m_entry(d, paddr_to_pfn(APIC_DEFAULT_PHYS_BASE), mfn,
- PAGE_ORDER_4K,
- p2m_get_hostp2m(d)->default_access);
+ return set_mmio_p2m_entry(d, gaddr_to_gfn(APIC_DEFAULT_PHYS_BASE), mfn,
+ PAGE_ORDER_4K);
}
static void vmx_free_vlapic_mapping(struct domain *d)
p2m_get_hostp2m(d)->default_access);
}
-int set_mmio_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn,
- unsigned int order, p2m_access_t access)
+int set_mmio_p2m_entry(struct domain *d, gfn_t gfn, mfn_t mfn,
+ unsigned int order)
{
if ( order > PAGE_ORDER_4K &&
rangeset_overlaps_range(mmio_ro_ranges, mfn_x(mfn),
mfn_x(mfn) + (1UL << order) - 1) )
return PAGE_ORDER_4K + 1;
- return set_typed_p2m_entry(d, gfn, mfn, order, p2m_mmio_direct, access);
+ return set_typed_p2m_entry(d, gfn_x(gfn), mfn, order, p2m_mmio_direct,
+ p2m_get_hostp2m(d)->default_access);
}
int set_identity_p2m_entry(struct domain *d, unsigned long gfn_l,
for ( order = mmio_order(d, (gfn_x(start_gfn) + i) | (mfn_x(mfn) + i), nr - i); ;
order = ret - 1 )
{
- ret = set_mmio_p2m_entry(d, gfn_x(start_gfn) + i,
- mfn_add(mfn, i), order,
- p2m_get_hostp2m(d)->default_access);
+ ret = set_mmio_p2m_entry(d, gfn_add(start_gfn, i),
+ mfn_add(mfn, i), order);
if ( ret <= 0 )
break;
ASSERT(ret <= order);
int set_foreign_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn);
/* Set mmio addresses in the p2m table (for pass-through) */
-int set_mmio_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn,
- unsigned int order, p2m_access_t access);
+int set_mmio_p2m_entry(struct domain *d, gfn_t gfn, mfn_t mfn,
+ unsigned int order);
int clear_mmio_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn,
unsigned int order);