diff --git a/sys/arch/xen/i386/xen_machdep.c b/sys/arch/xen/i386/xen_machdep.c index e1c2fe61e5e0..27a7826fb6ad 100644 --- a/sys/arch/xen/i386/xen_machdep.c +++ b/sys/arch/xen/i386/xen_machdep.c @@ -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 -__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) { diff --git a/sys/arch/xen/include/xenpmap.h b/sys/arch/xen/include/xenpmap.h index 540c903ce820..e2dac66a68c4 100644 --- a/sys/arch/xen/include/xenpmap.h +++ b/sys/arch/xen/include/xenpmap.h @@ -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);