Implement xpq_queue_machphys_update(), which queues a request to

update the machine to physical table (to be used after a
MEMOP_increase_reservation).
This commit is contained in:
bouyer 2005-08-20 19:20:54 +00:00
parent 7ce7159ca0
commit 54ecd3d8a1
2 changed files with 13 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: xen_machdep.c,v 1.10 2005/06/15 22:08:08 bouyer Exp $ */
/* $NetBSD: xen_machdep.c,v 1.11 2005/08/20 19:20:54 bouyer Exp $ */
/*
*
@ -33,7 +33,7 @@
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: xen_machdep.c,v 1.10 2005/06/15 22:08:08 bouyer Exp $");
__KERNEL_RCSID(0, "$NetBSD: xen_machdep.c,v 1.11 2005/08/20 19:20:54 bouyer Exp $");
#include "opt_xen.h"
@ -586,6 +586,15 @@ xpq_increment_idx(void)
xpq_flush_queue();
}
void
xpq_queue_machphys_update(paddr_t ma, paddr_t pa)
{
XENPRINTK2(("xpq_queue_machphys_update ma=%p pa=%p\n", (void *)ma, (void *)pa));
xpq_queue[xpq_idx].pa.ptr = ma | MMU_MACHPHYS_UPDATE;
xpq_queue[xpq_idx].pa.val = (pa - XPMAP_OFFSET) >> PAGE_SHIFT;
xpq_increment_idx();
}
void
xpq_queue_invlpg(vaddr_t va)
{

View File

@ -1,4 +1,4 @@
/* $NetBSD: xenpmap.h,v 1.7 2005/05/31 12:36:56 yamt Exp $ */
/* $NetBSD: xenpmap.h,v 1.8 2005/08/20 19:20:54 bouyer Exp $ */
/*
*
@ -37,6 +37,7 @@
#define INVALID_P2M_ENTRY (~0UL)
void xpq_queue_machphys_update(paddr_t, paddr_t);
void xpq_queue_invlpg(vaddr_t);
void xpq_queue_pde_update(pd_entry_t *, pd_entry_t);
void xpq_queue_pte_update(pt_entry_t *, pt_entry_t);