void p2m_dump_info(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
p2m_read_lock(p2m);
printk("p2m mappings for domain %d (vmid %d):\n",
void dump_p2m_lookup(struct domain *d, paddr_t addr)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
printk("dom%d IPA 0x%"PRIpaddr"\n", d->domain_id, addr);
void p2m_restore_state(struct vcpu *n)
{
- struct p2m_domain *p2m = &n->domain->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
uint8_t *last_vcpu_ran;
if ( is_idle_vcpu(n) )
mfn_t p2m_lookup(struct domain *d, gfn_t gfn, p2m_type_t *t)
{
mfn_t ret;
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
p2m_read_lock(p2m);
ret = p2m_get_entry(p2m, gfn, t, NULL, NULL);
mfn_t mfn,
p2m_type_t t)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
int rc;
p2m_write_lock(p2m);
unsigned long nr,
mfn_t mfn)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
int rc;
p2m_write_lock(p2m);
static int p2m_alloc_table(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
struct page_info *page;
unsigned int i;
static int p2m_alloc_vmid(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
int rc, nr;
static void p2m_free_vmid(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
spin_lock(&vmid_alloc_lock);
if ( p2m->vmid != INVALID_VMID )
clear_bit(p2m->vmid, vmid_mask);
void p2m_teardown(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
struct page_info *pg;
while ( (pg = page_list_remove_head(&p2m->pages)) )
int p2m_init(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
int rc = 0;
unsigned int cpu;
*/
int relinquish_p2m_mapping(struct domain *d)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
unsigned long count = 0;
p2m_type_t t;
int rc = 0;
int p2m_cache_flush(struct domain *d, gfn_t start, unsigned long nr)
{
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
gfn_t end = gfn_add(start, nr);
gfn_t next_gfn;
p2m_type_t t;
unsigned long flags)
{
struct domain *d = v->domain;
- struct p2m_domain *p2m = &d->arch.p2m;
+ struct p2m_domain *p2m = p2m_get_hostp2m(d);
struct page_info *page = NULL;
paddr_t maddr = 0;
int rc;