Module Name:    src
Committed By:   cherry
Date:           Mon Feb 11 14:59:33 UTC 2019

Modified Files:
        src/sys/arch/amd64/amd64: amd64_trap.S cpufunc.S db_interface.c gdt.c
            genassym.cf lock_stubs.S locore.S machdep.c process_machdep.c spl.S
            trap.c vector.S
        src/sys/arch/amd64/conf: XEN3_DOM0 XEN3_DOMU
        src/sys/arch/amd64/include: cpu.h frame.h frameasm.h param.h pmap.h
            profile.h segments.h types.h vmparam.h
        src/sys/arch/i386/conf: XEN3PAE_DOM0 XEN3PAE_DOMU
        src/sys/arch/i386/i386: cpufunc.S db_interface.c gdt.c genassym.cf
            i386_trap.S lock_stubs.S locore.S machdep.c spl.S trap.c vector.S
        src/sys/arch/i386/include: cpu.h frame.h frameasm.h pmap.h segments.h
            vmparam.h
        src/sys/arch/x86/acpi: acpi_machdep.c
        src/sys/arch/x86/include: cpu.h cpuvar.h intr.h intrdefs.h pmap.h
            specialreg.h
        src/sys/arch/x86/isa: isa_machdep.c
        src/sys/arch/x86/pci: pci_intr_machdep.c pci_machdep.c pcib.c
        src/sys/arch/x86/x86: bios32.c bus_space.c cpu_ucode.c fpu.c i8259.c
            identcpu.c idt.c pmap.c sys_machdep.c vm_machdep.c x86_machdep.c
            x86_tlb.c

Log Message:
We reorganise definitions for XEN source support as follows:

XEN - common sources required for baseline XEN support.
XENPV - sources required for support of XEN in PV mode.
XENPVHVM - sources required for support for XEN in HVM mode.
XENPVH - sources required for support for XEN in PVH mode.


To generate a diff of this commit:
cvs rdiff -u -r1.45 -r1.46 src/sys/arch/amd64/amd64/amd64_trap.S \
    src/sys/arch/amd64/amd64/gdt.c
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/amd64/amd64/cpufunc.S
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/amd64/amd64/db_interface.c
cvs rdiff -u -r1.72 -r1.73 src/sys/arch/amd64/amd64/genassym.cf
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/amd64/amd64/lock_stubs.S
cvs rdiff -u -r1.175 -r1.176 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -u -r1.324 -r1.325 src/sys/arch/amd64/amd64/machdep.c
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/amd64/amd64/process_machdep.c \
    src/sys/arch/amd64/amd64/spl.S
cvs rdiff -u -r1.116 -r1.117 src/sys/arch/amd64/amd64/trap.c
cvs rdiff -u -r1.65 -r1.66 src/sys/arch/amd64/amd64/vector.S
cvs rdiff -u -r1.165 -r1.166 src/sys/arch/amd64/conf/XEN3_DOM0
cvs rdiff -u -r1.87 -r1.88 src/sys/arch/amd64/conf/XEN3_DOMU
cvs rdiff -u -r1.63 -r1.64 src/sys/arch/amd64/include/cpu.h
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/amd64/include/frame.h
cvs rdiff -u -r1.41 -r1.42 src/sys/arch/amd64/include/frameasm.h
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/amd64/include/param.h
cvs rdiff -u -r1.58 -r1.59 src/sys/arch/amd64/include/pmap.h \
    src/sys/arch/amd64/include/types.h
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/amd64/include/profile.h
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/amd64/include/segments.h
cvs rdiff -u -r1.50 -r1.51 src/sys/arch/amd64/include/vmparam.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/i386/conf/XEN3PAE_DOM0
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/i386/conf/XEN3PAE_DOMU
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/i386/i386/cpufunc.S
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/i386/i386/db_interface.c
cvs rdiff -u -r1.68 -r1.69 src/sys/arch/i386/i386/gdt.c
cvs rdiff -u -r1.109 -r1.110 src/sys/arch/i386/i386/genassym.cf
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/i386/i386/i386_trap.S
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/i386/i386/lock_stubs.S
cvs rdiff -u -r1.162 -r1.163 src/sys/arch/i386/i386/locore.S
cvs rdiff -u -r1.814 -r1.815 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.46 -r1.47 src/sys/arch/i386/i386/spl.S
cvs rdiff -u -r1.297 -r1.298 src/sys/arch/i386/i386/trap.c
cvs rdiff -u -r1.79 -r1.80 src/sys/arch/i386/i386/vector.S
cvs rdiff -u -r1.180 -r1.181 src/sys/arch/i386/include/cpu.h
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/i386/include/frame.h
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/i386/include/frameasm.h
cvs rdiff -u -r1.121 -r1.122 src/sys/arch/i386/include/pmap.h
cvs rdiff -u -r1.67 -r1.68 src/sys/arch/i386/include/segments.h
cvs rdiff -u -r1.85 -r1.86 src/sys/arch/i386/include/vmparam.h
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/x86/acpi/acpi_machdep.c
cvs rdiff -u -r1.102 -r1.103 src/sys/arch/x86/include/cpu.h
cvs rdiff -u -r1.50 -r1.51 src/sys/arch/x86/include/cpuvar.h
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/x86/include/intr.h
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/x86/include/intrdefs.h
cvs rdiff -u -r1.95 -r1.96 src/sys/arch/x86/include/pmap.h
cvs rdiff -u -r1.139 -r1.140 src/sys/arch/x86/include/specialreg.h
cvs rdiff -u -r1.43 -r1.44 src/sys/arch/x86/isa/isa_machdep.c
cvs rdiff -u -r1.48 -r1.49 src/sys/arch/x86/pci/pci_intr_machdep.c
cvs rdiff -u -r1.83 -r1.84 src/sys/arch/x86/pci/pci_machdep.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/x86/pci/pcib.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/x86/bios32.c
cvs rdiff -u -r1.40 -r1.41 src/sys/arch/x86/x86/bus_space.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/x86/x86/cpu_ucode.c
cvs rdiff -u -r1.49 -r1.50 src/sys/arch/x86/x86/fpu.c
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/x86/x86/i8259.c
cvs rdiff -u -r1.86 -r1.87 src/sys/arch/x86/x86/identcpu.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/x86/x86/idt.c
cvs rdiff -u -r1.320 -r1.321 src/sys/arch/x86/x86/pmap.c
cvs rdiff -u -r1.50 -r1.51 src/sys/arch/x86/x86/sys_machdep.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/x86/x86/vm_machdep.c
cvs rdiff -u -r1.121 -r1.122 src/sys/arch/x86/x86/x86_machdep.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x86/x86/x86_tlb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/amd64/amd64_trap.S
diff -u src/sys/arch/amd64/amd64/amd64_trap.S:1.45 src/sys/arch/amd64/amd64/amd64_trap.S:1.46
--- src/sys/arch/amd64/amd64/amd64_trap.S:1.45	Sun Aug 12 06:11:47 2018
+++ src/sys/arch/amd64/amd64/amd64_trap.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amd64_trap.S,v 1.45 2018/08/12 06:11:47 maxv Exp $	*/
+/*	$NetBSD: amd64_trap.S,v 1.46 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2008, 2017 The NetBSD Foundation, Inc.
@@ -89,7 +89,7 @@
  * handler.
  */
 
-#ifdef	XEN
+#ifdef	XENPV
 #define	PRE_TRAP	movq (%rsp),%rcx ; movq 8(%rsp),%r11 ; addq $0x10,%rsp
 #else
 #define	PRE_TRAP
@@ -179,7 +179,7 @@ IDTVEC_END(trap00)
  * to contain secrets.
  */
 IDTVEC(trap01)
-#ifndef XEN
+#ifndef XENPV
 	subq	$(TF_REGSIZE+16),%rsp
 
 	/* We clobber only RDX, RCX and RAX. */
@@ -247,7 +247,7 @@ IDTVEC_END(trap01)
  * running in kernel mode with a userland %gs.
  */
 IDTVEC(trap02)
-#if defined(XEN)
+#if defined(XENPV)
 	ZTRAP(T_NMI)
 #else
 	ZTRAP_NJ(T_NMI)
@@ -346,7 +346,7 @@ IDTVEC_END(trap07)
  * of it. So don't enable interrupts.
  */
 IDTVEC(trap08)
-#if defined(XEN)
+#if defined(XENPV)
 	TRAP(T_DOUBLEFLT)
 #else
 	TRAP_NJ(T_DOUBLEFLT)
@@ -390,7 +390,7 @@ IDTVEC(trap10)
 	TRAP(T_TSSFLT)
 IDTVEC_END(trap10)
 
-#ifdef XEN
+#ifdef XENPV
 /*
  * I don't believe XEN generates in-kernel traps for the
  * equivalent of iret, if it does this code would be needed
Index: src/sys/arch/amd64/amd64/gdt.c
diff -u src/sys/arch/amd64/amd64/gdt.c:1.45 src/sys/arch/amd64/amd64/gdt.c:1.46
--- src/sys/arch/amd64/amd64/gdt.c:1.45	Fri Jan  5 08:04:20 2018
+++ src/sys/arch/amd64/amd64/gdt.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: gdt.c,v 1.45 2018/01/05 08:04:20 maxv Exp $	*/
+/*	$NetBSD: gdt.c,v 1.46 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1996, 1997, 2009 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.45 2018/01/05 08:04:20 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.46 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_multiprocessor.h"
 #include "opt_xen.h"
@@ -53,7 +53,7 @@ __KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.45
 
 #include <machine/gdt.h>
 
-#ifdef XEN
+#ifdef XENPV
 #include <xen/hypervisor.h>
 #endif
 
@@ -67,7 +67,7 @@ typedef struct {
 } gdt_bitmap_t;
 
 /* size of GDT in bytes */
-#ifdef XEN
+#ifdef XENPV
 const size_t gdt_size = FIRST_RESERVED_GDT_BYTE;
 #else
 const size_t gdt_size = MAXGDTSIZ;
@@ -76,7 +76,7 @@ const size_t gdt_size = MAXGDTSIZ;
 /* bitmap of busy slots */
 static gdt_bitmap_t gdt_bitmap;
 
-#if defined(USER_LDT) || !defined(XEN)
+#if defined(USER_LDT) || !defined(XENPV)
 static void set_sys_gdt(int, void *, size_t, int, int, int);
 #endif
 
@@ -88,7 +88,7 @@ update_descriptor(void *tp, void *ep)
 	table = tp;
 	entry = ep;
 
-#ifndef XEN
+#ifndef XENPV
 	*table = *entry;
 #else
 	paddr_t pa;
@@ -99,7 +99,7 @@ update_descriptor(void *tp, void *ep)
 #endif
 }
 
-#if defined(USER_LDT) || !defined(XEN)
+#if defined(USER_LDT) || !defined(XENPV)
 /*
  * Called on a newly-allocated GDT slot, so no race between CPUs.
  */
@@ -122,7 +122,7 @@ set_sys_gdt(int slot, void *base, size_t
 		update_descriptor(&ci->ci_gdt[idx + 1], &d.bits[1]);
 	}
 }
-#endif	/* USER_LDT || !XEN */
+#endif	/* USER_LDT || !XENPV */
 
 /*
  * Initialize the GDT. We already have a gdtstore, which was temporarily used
@@ -165,7 +165,7 @@ gdt_init(void)
 	/* Copy the initial bootstrap GDT into the new area. */
 	memcpy(gdtstore, old_gdt, DYNSEL_START);
 	ci->ci_gdt = (void *)gdtstore;
-#ifndef XEN
+#ifndef XENPV
 	set_sys_segment(GDT_ADDR_SYS(gdtstore, GLDT_SEL), ldtstore,
 	    LDT_SIZE - 1, SDT_SYSLDT, SEL_KPL, 0);
 #endif
@@ -218,7 +218,7 @@ gdt_init_cpu(struct cpu_info *ci)
 	lgdt(&region);
 }
 
-#if !defined(XEN) || defined(USER_LDT)
+#if !defined(XENPV) || defined(USER_LDT)
 static int
 gdt_get_slot(void)
 {
@@ -250,7 +250,7 @@ gdt_put_slot(int slot)
 int
 tss_alloc(struct x86_64_tss *tss)
 {
-#ifndef XEN
+#ifndef XENPV
 	int slot;
 
 	mutex_enter(&cpu_lock);
@@ -271,7 +271,7 @@ tss_alloc(struct x86_64_tss *tss)
 void
 tss_free(int sel)
 {
-#ifndef XEN
+#ifndef XENPV
 	mutex_enter(&cpu_lock);
 	gdt_put_slot(IDXDYNSEL(sel));
 	mutex_exit(&cpu_lock);
@@ -307,7 +307,7 @@ ldt_free(int sel)
 }
 #endif
 
-#ifdef XEN
+#ifdef XENPV
 void
 lgdt(struct region_descriptor *desc)
 {

Index: src/sys/arch/amd64/amd64/cpufunc.S
diff -u src/sys/arch/amd64/amd64/cpufunc.S:1.35 src/sys/arch/amd64/amd64/cpufunc.S:1.36
--- src/sys/arch/amd64/amd64/cpufunc.S:1.35	Sun Jan  6 14:35:31 2019
+++ src/sys/arch/amd64/amd64/cpufunc.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpufunc.S,v 1.35 2019/01/06 14:35:31 cherry Exp $	*/
+/*	$NetBSD: cpufunc.S,v 1.36 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -63,7 +63,7 @@ ENTRY(x86_mfence)
 	ret
 END(x86_mfence)
 
-#ifndef XEN
+#ifndef XENPV
 ENTRY(invlpg)
 	invlpg	(%rdi)
 	ret
@@ -158,7 +158,7 @@ END(rcr8)
  *
  * If PGE is not in use, we reload CR3.
  */
-#ifndef XEN
+#ifndef XENPV
 ENTRY(tlbflushg)
 	movq	%cr4, %rax
 	testq	$CR4_PGE, %rax
@@ -262,7 +262,7 @@ ENTRY(x86_write_flags)
 END(x86_write_flags)
 
 STRONG_ALIAS(x86_write_psl,x86_write_flags)
-#endif /* XEN */
+#endif /* XENPV */
 
 ENTRY(rdmsr)
 	movq	%rdi, %rcx
@@ -352,7 +352,7 @@ ENTRY(msr_onfault)
 	ret
 END(msr_onfault)
 
-#ifndef XEN
+#ifndef XENPV
 ENTRY(wbinvd)
 	wbinvd
 	ret
@@ -434,7 +434,7 @@ END(__byte_swap_u16_variable)
  * is necessary, since the actual descriptor data is not changed except by
  * process creation and exit, both of which clean up via task switches.
  */
-#ifndef XEN
+#ifndef XENPV
 ENTRY(lgdt)
 	/* Reload the descriptor table. */
 	movq	%rdi,%rax
@@ -754,7 +754,7 @@ ENTRY(setfs)
 	ret
 END(setfs)
 
-#ifndef XEN
+#ifndef XENPV
 ENTRY(setusergs)
 	CLI(ax)
 	swapgs

Index: src/sys/arch/amd64/amd64/db_interface.c
diff -u src/sys/arch/amd64/amd64/db_interface.c:1.34 src/sys/arch/amd64/amd64/db_interface.c:1.35
--- src/sys/arch/amd64/amd64/db_interface.c:1.34	Sun Sep 23 00:59:59 2018
+++ src/sys/arch/amd64/amd64/db_interface.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: db_interface.c,v 1.34 2018/09/23 00:59:59 cherry Exp $	*/
+/*	$NetBSD: db_interface.c,v 1.35 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Mach Operating System
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.34 2018/09/23 00:59:59 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.35 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -88,9 +88,9 @@ void kdbprinttrap(int, int);
 #ifdef MULTIPROCESSOR
 extern void ddb_ipi(struct trapframe);
 static void ddb_suspend(struct trapframe *);
-#ifndef XEN
+#ifndef XENPV
 int ddb_vec;
-#endif /* XEN */
+#endif /* XENPV */
 static bool ddb_mp_online;
 #endif
 
@@ -106,7 +106,7 @@ db_machine_init(void)
 {
 
 #ifdef MULTIPROCESSOR
-#ifndef XEN
+#ifndef XENPV
 	vector *handler = &Xintr_ddbipi;
 #if NLAPIC > 0
 	if (lapic_is_x2apic())
@@ -117,7 +117,7 @@ db_machine_init(void)
 	    GSEL(GCODE_SEL, SEL_KPL));
 #else
 	/* Initialised as part of xen_ipi_init() */
-#endif /* XEN */
+#endif /* XENPV */
 #endif
 }
 
@@ -131,10 +131,10 @@ db_suspend_others(void)
 	int cpu_me = cpu_number();
 	int win;
 
-#ifndef XEN
+#ifndef XENPV
 	if (ddb_vec == 0)
 		return 1;
-#endif /* XEN */
+#endif /* XENPV */
 
 	__cpu_simple_lock(&db_lock);
 	if (ddb_cpu == NOCPU)
@@ -142,11 +142,11 @@ db_suspend_others(void)
 	win = (ddb_cpu == cpu_me);
 	__cpu_simple_unlock(&db_lock);
 	if (win) {
-#ifdef XEN
+#ifdef XENPV
 		xen_broadcast_ipi(XEN_IPI_DDB);
 #else
 		x86_ipi(ddb_vec, LAPIC_DEST_ALLEXCL, LAPIC_DLMODE_FIXED);
-#endif /* XEN */
+#endif /* XENPV */
 	}
 	ddb_mp_online = x86_mp_online;
 	x86_mp_online = false;

Index: src/sys/arch/amd64/amd64/genassym.cf
diff -u src/sys/arch/amd64/amd64/genassym.cf:1.72 src/sys/arch/amd64/amd64/genassym.cf:1.73
--- src/sys/arch/amd64/amd64/genassym.cf:1.72	Sat Feb  2 12:32:54 2019
+++ src/sys/arch/amd64/amd64/genassym.cf	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.72 2019/02/02 12:32:54 cherry Exp $
+#	$NetBSD: genassym.cf,v 1.73 2019/02/11 14:59:32 cherry Exp $
 
 #
 # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -250,7 +250,7 @@ define	CPU_INFO_FPCURLWP	offsetof(struct
 define	CPU_INFO_GDT		offsetof(struct cpu_info, ci_gdt)
 define	CPU_INFO_ILEVEL		offsetof(struct cpu_info, ci_ilevel)
 define	CPU_INFO_IDEPTH		offsetof(struct cpu_info, ci_idepth)
-if !defined(XEN)
+if !defined(XENPV)
 define	CPU_INFO_IPENDING	offsetof(struct cpu_info, ci_ipending)
 define	CPU_INFO_IMASK		offsetof(struct cpu_info, ci_imask)
 define	CPU_INFO_IUNMASK	offsetof(struct cpu_info, ci_iunmask)
@@ -359,9 +359,11 @@ define CPU_INFO_XMASK		offsetof(struct c
 define CPU_INFO_XUNMASK		offsetof(struct cpu_info, ci_xunmask)
 define CPU_INFO_XSOURCES	offsetof(struct cpu_info, ci_xsources)
 define EVTCHN_UPCALL_MASK	offsetof(struct vcpu_info, evtchn_upcall_mask)
+ifdef XENPV
 define XEN_PT_BASE		offsetof(struct start_info, pt_base)    
 define XEN_NR_PT_FRAMES		offsetof(struct start_info, nr_pt_frames)
 define __HYPERVISOR_iret	__HYPERVISOR_iret
+endif /* XENPV */
 endif
 
 define	NKL4_KIMG_ENTRIES	NKL4_KIMG_ENTRIES

Index: src/sys/arch/amd64/amd64/lock_stubs.S
diff -u src/sys/arch/amd64/amd64/lock_stubs.S:1.30 src/sys/arch/amd64/amd64/lock_stubs.S:1.31
--- src/sys/arch/amd64/amd64/lock_stubs.S:1.30	Tue Dec 25 06:50:11 2018
+++ src/sys/arch/amd64/amd64/lock_stubs.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: lock_stubs.S,v 1.30 2018/12/25 06:50:11 cherry Exp $	*/
+/*	$NetBSD: lock_stubs.S,v 1.31 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -136,7 +136,7 @@ ENTRY(mutex_spin_exit)
 	jnz	1f
 	cmpl	CPU_INFO_ILEVEL(%r8), %edi
 	jae	1f
-#if !defined(XEN)
+#if !defined(XENPV)
 	movl	CPU_INFO_IUNMASK(%r8,%rdi,4), %esi
 	CLI(ax)
 	testl	CPU_INFO_IPENDING(%r8), %esi
@@ -165,7 +165,7 @@ ENTRY(mutex_spin_exit)
 	cmpl	%edx,%ecx			/* new level is lower? */
 	jae	2f
 1:
-#if !defined(XEN)
+#if !defined(XENPV)
 	movl	CPU_INFO_IPENDING(%rsi),%eax
 	testl	%eax,CPU_INFO_IUNMASK(%rsi,%rcx,4)/* deferred interrupts? */
 	jnz	3f

Index: src/sys/arch/amd64/amd64/locore.S
diff -u src/sys/arch/amd64/amd64/locore.S:1.175 src/sys/arch/amd64/amd64/locore.S:1.176
--- src/sys/arch/amd64/amd64/locore.S:1.175	Sat Feb  2 12:32:54 2019
+++ src/sys/arch/amd64/amd64/locore.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.175 2019/02/02 12:32:54 cherry Exp $	*/
+/*	$NetBSD: locore.S,v 1.176 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -278,6 +278,7 @@
 #define __ASSEMBLY__
 #include <xen/include/public/elfnote.h>
 #include <xen/include/public/xen.h>
+#ifdef XENPV	
 #define ELFNOTE(name, type, desctype, descdata...) \
 .pushsection .note.name			;	\
   .align 4				;	\
@@ -310,6 +311,7 @@
 #if NKSYMS > 0 || defined(DDB) || defined(MODULAR)
 	ELFNOTE(Xen, XEN_ELFNOTE_BSD_SYMTAB,     .asciz, "yes")
 #endif
+#endif  /* XENPV */	
 #endif	/* XEN */
 
 /*
@@ -378,7 +380,7 @@ END(biosextmem)
 LABEL(lwp0uarea)	.quad	0
 END(lwp0uarea)
 
-#ifndef XEN
+#ifndef XENPV
 	.globl	gdt64_lo
 	.globl	gdt64_hi
 
@@ -414,7 +416,7 @@ _C_LABEL(farjmp64):
 	.word	GSEL(GCODE_SEL, SEL_KPL)
 END(farjmp64)
 
-#endif	/* !XEN */
+#endif	/* !XENPV */
 
 	/* Space for the temporary stack */
 	.size	tmpstk, tmpstk - .
@@ -431,7 +433,7 @@ tmpstk:
 	.set	_C_LABEL(kernel_text),KERNTEXTOFF
 
 ENTRY(start)
-#ifndef XEN
+#ifndef XENPV
 	.code32
 
 	/* Warm boot */
@@ -881,7 +883,7 @@ longmode_hi:
 	/* The first physical page available. */
 	leaq	(TABLESIZE)(%rsi),%rdi
 
-#else	/* XEN */
+#else	/* XENPV */
 	/* First, reset the PSL. */
 	pushq	$2
 	popfq
@@ -964,7 +966,7 @@ longmode_hi:
 	movq	%rsi,%rdi
 	addq	$(USPACE+PAGE_SIZE),%rdi
 	subq	$KERNBASE,%rdi	/* init_x86_64 wants a physical address */
-#endif	/* XEN */
+#endif	/* XENPV */
 
 	pushq	%rdi
 	call	_C_LABEL(init_bootspace)
@@ -1106,7 +1108,7 @@ ENTRY(cpu_switchto)
 .Lskip_svs:
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 	movq	%r13,%rdi
 	movq	%r12,%rsi
 	callq	_C_LABEL(speculation_barrier)
@@ -1126,7 +1128,7 @@ ENTRY(cpu_switchto)
 .Lno_svs_switch:
 #endif
 
-#if !defined(XEN)
+#if !defined(XENPV)
 	movq	PCB_RSP0(%r14),%rax
 	movq	CPUVAR(TSS),%rdi
 	movq	%rax,TSS_RSP0(%rdi)
@@ -1141,7 +1143,7 @@ ENTRY(cpu_switchto)
 	movq	%r12,%rsi
 	callq	_C_LABEL(x86_dbregs_switch)
 
-#ifndef XEN
+#ifndef XENPV
 	movb	_C_LABEL(x86_fpu_eager),%dl
 	testb	%dl,%dl
 	jz	.Lno_eagerfpu
@@ -1173,7 +1175,7 @@ ENTRY(cpu_switchto)
 	 * Restore cr0 including FPU state (may have CR0_TS set).  Note that
 	 * IPL_SCHED prevents from FPU interrupt altering the LWP's saved cr0.
 	 */
-#ifndef XEN
+#ifndef XENPV
 	movl	$IPL_HIGH,CPUVAR(ILEVEL)
 	movl	PCB_CR0(%r14),%ecx	/* has CR0_TS clear */
 	movq	%cr0,%rdx
@@ -1374,7 +1376,7 @@ END(lwp_trampoline)
 
 .macro	SYSCALL_ENTRY	name,is_svs
 IDTVEC(\name)
-#ifndef XEN
+#ifndef XENPV
 	/*
 	 * The user %rip is in %rcx and the user %rflags in %r11. The kernel %cs
 	 * and %ss are loaded, but nothing else is.
@@ -1459,7 +1461,7 @@ IDTVEC_END(syscall32)
  */
 	TEXT_USER_BEGIN
 IDTVEC(osyscall)
-#ifdef XEN
+#ifdef XENPV
 	movq (%rsp),%rcx
 	movq 8(%rsp),%r11
 	addq $0x10,%rsp
@@ -1481,7 +1483,7 @@ LABEL(syscall_sysret)
 	IBRS_LEAVE
 	INTR_RESTORE_GPRS
 	SWAPGS
-#ifndef XEN
+#ifndef XENPV
 	movq	TF_RIP(%rsp),%rcx	/* %rip for sysret */
 	movq	TF_RFLAGS(%rsp),%r11	/* %flags for sysret */
 	movq	TF_RSP(%rsp),%rsp
@@ -1579,7 +1581,7 @@ LABEL(intrfastexit)
 	je	.Luexit64
 	cmpw	$GSEL(GUCODE_SEL, SEL_UPL),TF_BACKW(TF_CS, %rsp)
 	je	.Luexit64
-#ifdef XEN
+#ifdef XENPV
 	cmpw	$FLAT_RING3_CS64,TF_BACKW(TF_CS, %rsp)
 	je	.Luexit64
 #endif
@@ -1592,7 +1594,7 @@ do_mov_ds:
 	movw	TF_BACKW(TF_DS, %rsp),%ds
 do_mov_fs:
 	movw	TF_BACKW(TF_FS, %rsp),%fs
-#ifndef XEN
+#ifndef XENPV
 do_mov_gs:
 	movw	TF_BACKW(TF_GS, %rsp),%gs
 #endif

Index: src/sys/arch/amd64/amd64/machdep.c
diff -u src/sys/arch/amd64/amd64/machdep.c:1.324 src/sys/arch/amd64/amd64/machdep.c:1.325
--- src/sys/arch/amd64/amd64/machdep.c:1.324	Sun Jan 27 02:08:37 2019
+++ src/sys/arch/amd64/amd64/machdep.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.324 2019/01/27 02:08:37 pgoyette Exp $	*/
+/*	$NetBSD: machdep.c,v 1.325 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008, 2011
@@ -110,7 +110,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.324 2019/01/27 02:08:37 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.325 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_modular.h"
 #include "opt_user_ldt.h"
@@ -123,7 +123,7 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v 
 #include "opt_svs.h"
 #include "opt_kaslr.h"
 #include "opt_kasan.h"
-#ifndef XEN
+#ifndef XENPV
 #include "opt_physmem.h"
 #endif
 #include "isa.h"
@@ -273,14 +273,14 @@ struct vm_map *phys_map = NULL;
 
 extern paddr_t lowmem_rsvd;
 extern paddr_t avail_start, avail_end;
-#ifdef XEN
+#ifdef XENPV
 extern paddr_t pmap_pa_start, pmap_pa_end;
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 void (*delay_func)(unsigned int) = i8254_delay;
 void (*initclock_func)(void) = i8254_initclocks;
-#else /* XEN */
+#else /* XENPV */
 void (*delay_func)(unsigned int) = xen_delay;
 void (*initclock_func)(void) = xen_initclocks;
 #endif
@@ -407,14 +407,14 @@ cpu_startup(void)
 	x86_64_proc0_pcb_ldt_init();
 
 	cpu_init_tss(&cpu_info_primary);
-#if !defined(XEN)
+#if !defined(XENPV)
 	ltr(cpu_info_primary.ci_tss_sel);
 #endif
 
 	x86_startup();
 }
 
-#ifdef XEN
+#ifdef XENPV
 /* used in assembly */
 void hypervisor_callback(void);
 void failsafe_callback(void);
@@ -472,7 +472,7 @@ x86_64_tls_switch(struct lwp *l)
 		HYPERVISOR_set_segment_base(SEGBASE_GS_USER, pcb->pcb_gs);
 	}
 }
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * Set up proc0's PCB and LDT.
@@ -492,7 +492,7 @@ x86_64_proc0_pcb_ldt_init(void)
 	pcb->pcb_cr0 = rcr0() & ~CR0_TS;
 	l->l_md.md_regs = (struct trapframe *)pcb->pcb_rsp0 - 1;
 
-#if !defined(XEN)
+#if !defined(XENPV)
 	lldt(GSYSSEL(GLDT_SEL, SEL_KPL));
 #else
 	struct physdev_op physop;
@@ -735,9 +735,9 @@ haltsys:
 
 		acpi_enter_sleep_state(ACPI_STATE_S5);
 #endif
-#ifdef XEN
+#ifdef XENPV
 		HYPERVISOR_shutdown();
-#endif /* XEN */
+#endif /* XENPV */
 	}
 
 	cpu_broadcast_halt();
@@ -1500,7 +1500,7 @@ init_x86_64_ksyms(void)
 #if NKSYMS || defined(DDB) || defined(MODULAR)
 	extern int end;
 	extern int *esym;
-#ifndef XEN
+#ifndef XENPV
 	struct btinfo_symtab *symtab;
 	vaddr_t tssym, tesym;
 #endif
@@ -1509,7 +1509,7 @@ init_x86_64_ksyms(void)
 	db_machine_init();
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 	symtab = lookup_bootinfo(BTINFO_SYMTAB);
 	if (symtab) {
 #ifdef KASLR
@@ -1523,13 +1523,13 @@ init_x86_64_ksyms(void)
 	} else
 		ksyms_addsyms_elf(*(long *)(void *)&end,
 		    ((long *)(void *)&end) + 1, esym);
-#else  /* XEN */
+#else  /* XENPV */
 	esym = xen_start_info.mod_start ?
 	    (void *)xen_start_info.mod_start :
 	    (void *)xen_start_info.mfn_list;
 	ksyms_addsyms_elf(*(int *)(void *)&end,
 	    ((int *)(void *)&end) + 1, esym);
-#endif /* XEN */
+#endif /* XENPV */
 #endif
 }
 
@@ -1584,7 +1584,7 @@ init_bootspace(void)
 static void __noasan
 init_pte(void)
 {
-#ifndef XEN
+#ifndef XENPV
 	extern uint32_t nox_flag;
 	pd_entry_t *pdir = (pd_entry_t *)bootspace.pdir;
 	pdir[L4_SLOT_PTE] = PDPpaddr | PG_KW | ((uint64_t)nox_flag << 32) |
@@ -1609,7 +1609,7 @@ init_slotspace(void)
 	slotspace.area[SLAREA_USER].nslot = PDIR_SLOT_USERLIM+1;
 	slotspace.area[SLAREA_USER].active = true;
 
-#ifdef XEN
+#ifdef XENPV
 	/* PTE. */
 	slotspace.area[SLAREA_PTE].sslot = PDIR_SLOT_PTE;
 	slotspace.area[SLAREA_PTE].nslot = 1;
@@ -1628,7 +1628,7 @@ init_slotspace(void)
 	slotspace.area[SLAREA_DMAP].active = false;
 #endif
 
-#ifdef XEN
+#ifdef XENPV
 	/* Hypervisor. */
 	slotspace.area[SLAREA_HYPV].sslot = 256;
 	slotspace.area[SLAREA_HYPV].nslot = 17;
@@ -1653,7 +1653,7 @@ init_slotspace(void)
 	vm_min_kernel_address = va;
 	vm_max_kernel_address = va + NKL4_MAX_ENTRIES * NBPD_L4;
 
-#ifndef XEN
+#ifndef XENPV
 	/* PTE. */
 	va = slotspace_rand(SLAREA_PTE, NBPD_L4, NBPD_L4);
 	pte_base = (pd_entry_t *)va;
@@ -1669,13 +1669,13 @@ init_x86_64(paddr_t first_avail)
 	int x;
 	struct pcb *pcb;
 	extern vaddr_t lwp0uarea;
-#ifndef XEN
+#ifndef XENPV
 	extern paddr_t local_apic_pa;
 #endif
 
 	KASSERT(first_avail % PAGE_SIZE == 0);
 
-#ifdef XEN
+#ifdef XENPV
 	KASSERT(HYPERVISOR_shared_info != NULL);
 	cpu_info_primary.ci_vcpu = &HYPERVISOR_shared_info->vcpu_info[0];
 #endif
@@ -1693,14 +1693,14 @@ init_x86_64(paddr_t first_avail)
 	svs_init();
 #endif
 	cpu_init_msrs(&cpu_info_primary, true);
-#ifndef XEN
+#ifndef XENPV
 	cpu_speculation_init(&cpu_info_primary);
 #endif
 
 	use_pae = 1; /* PAE always enabled in long mode */
 
 	pcb = lwp_getpcb(&lwp0);
-#ifdef XEN
+#ifdef XENPV
 	mutex_init(&pte_lock, MUTEX_DEFAULT, IPL_VM);
 	pcb->pcb_cr3 = xen_start_info.pt_base - KERNBASE;
 #else
@@ -1722,7 +1722,7 @@ init_x86_64(paddr_t first_avail)
 
 	avail_start = first_avail;
 
-#ifndef XEN
+#ifndef XENPV
 	/*
 	 * Low memory reservations:
 	 * Page 0:	BIOS data
@@ -1753,7 +1753,7 @@ init_x86_64(paddr_t first_avail)
 	 */
 	pmap_bootstrap(VM_MIN_KERNEL_ADDRESS);
 
-#ifndef XEN
+#ifndef XENPV
 	/* Internalize the physical pages into the VM system. */
 	init_x86_vm(avail_start);
 #else
@@ -1772,7 +1772,7 @@ init_x86_64(paddr_t first_avail)
 
 	kpreempt_disable();
 
-#ifndef XEN
+#ifndef XENPV
 	pmap_kenter_pa(local_apic_va, local_apic_pa,
 	    VM_PROT_READ|VM_PROT_WRITE, 0);
 	pmap_update(pmap_kernel());
@@ -1787,7 +1787,7 @@ init_x86_64(paddr_t first_avail)
 	memset((void *)gdt_vaddr, 0, PAGE_SIZE);
 	memset((void *)ldt_vaddr, 0, PAGE_SIZE);
 
-#ifndef XEN
+#ifndef XENPV
 	pmap_changeprot_local(idt_vaddr, VM_PROT_READ);
 #endif
 
@@ -1812,7 +1812,7 @@ init_x86_64(paddr_t first_avail)
 	set_mem_segment(GDT_ADDR_MEM(gdtstore, GUDATA_SEL), 0,
 	    x86_btop(VM_MAXUSER_ADDRESS) - 1, SDT_MEMRWA, SEL_UPL, 1, 0, 1);
 
-#ifndef XEN
+#ifndef XENPV
 	set_sys_segment(GDT_ADDR_SYS(gdtstore, GLDT_SEL), ldtstore,
 	    LDT_SIZE - 1, SDT_SYSLDT, SEL_KPL, 0);
 #endif
@@ -1874,11 +1874,11 @@ init_x86_64(paddr_t first_avail)
 		case 8:	/* double fault */
 			ist = 2;
 			break;
-#ifdef XEN			
+#ifdef XENPV			
 		case 18: /* MCA */
 			sel |= 0x4; /* Auto EOI/mask */
 			break;
-#endif /* XEN */			
+#endif /* XENPV */			
 		default:
 			break;
 		}
@@ -1897,19 +1897,19 @@ init_x86_64(paddr_t first_avail)
 	setregion(&region, gdtstore, DYNSEL_START - 1);
 	lgdt(&region);
 
-#ifdef XEN
+#ifdef XENPV
 	/* Init Xen callbacks and syscall handlers */
 	if (HYPERVISOR_set_callbacks(
 	    (unsigned long) hypervisor_callback,
 	    (unsigned long) failsafe_callback,
 	    (unsigned long) Xsyscall))
 		panic("HYPERVISOR_set_callbacks() failed");
-#endif /* XEN */
+#endif /* XENPV */
 	cpu_init_idt();
 
 	init_x86_64_ksyms();
 
-#ifndef XEN
+#ifndef XENPV
 	intr_default_setup();
 #else
 	events_default_setup();
@@ -1939,7 +1939,7 @@ cpu_reset(void)
 {
 	x86_disable_intr();
 
-#ifdef XEN
+#ifdef XENPV
 	HYPERVISOR_reboot();
 #else
 
@@ -1963,7 +1963,7 @@ cpu_reset(void)
 	memset((void *)PTD, 0, PAGE_SIZE);
 	tlbflush();
 #endif
-#endif	/* XEN */
+#endif	/* XENPV */
 
 	for (;;);
 }
@@ -2060,7 +2060,7 @@ cpu_setmcontext(struct lwp *l, const mco
 		tf->tf_rsp  = gr[_REG_RSP];
 		tf->tf_ss   = LSEL(LUDATA_SEL, SEL_UPL);
 
-#ifdef XEN
+#ifdef XENPV
 		/*
 		 * Xen has its own way of dealing with %cs and %ss,
 		 * reset them to proper values.
@@ -2118,7 +2118,7 @@ cpu_mcontext_validate(struct lwp *l, con
 	if (!VALID_USER_DSEL(sel))
 		return EINVAL;
 
-#ifndef XEN
+#ifndef XENPV
 	sel = gr[_REG_SS] & 0xffff;
 	if (!VALID_USER_DSEL(sel))
 		return EINVAL;
@@ -2208,7 +2208,7 @@ cpu_segregs64_zero(struct lwp *l)
 	setfs(0);
 	setusergs(0);
 
-#ifndef XEN
+#ifndef XENPV
 	wrmsr(MSR_FSBASE, 0);
 	wrmsr(MSR_KERNELGSBASE, 0);
 #else
@@ -2275,7 +2275,7 @@ cpu_fsgs_reload(struct lwp *l, int fssel
 	update_descriptor(&curcpu()->ci_gdt[GUFS_SEL], &pcb->pcb_fs);
 	update_descriptor(&curcpu()->ci_gdt[GUGS_SEL], &pcb->pcb_gs);
 
-#ifdef XEN
+#ifdef XENPV
 	setusergs(gssel);
 #endif
 

Index: src/sys/arch/amd64/amd64/process_machdep.c
diff -u src/sys/arch/amd64/amd64/process_machdep.c:1.38 src/sys/arch/amd64/amd64/process_machdep.c:1.39
--- src/sys/arch/amd64/amd64/process_machdep.c:1.38	Fri Dec  1 21:22:45 2017
+++ src/sys/arch/amd64/amd64/process_machdep.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: process_machdep.c,v 1.38 2017/12/01 21:22:45 maxv Exp $	*/
+/*	$NetBSD: process_machdep.c,v 1.39 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.38 2017/12/01 21:22:45 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.39 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_xen.h"
 #include <sys/param.h>
@@ -215,7 +215,7 @@ process_write_regs(struct lwp *l, const 
 	tf->tf_rsp  = regs[_REG_RSP];
 	tf->tf_ss   = LSEL(LUDATA_SEL, SEL_UPL);
 
-#ifdef XEN
+#ifdef XENPV
 	/* see comment in cpu_setmcontext */
 	tf->tf_ss = GSEL(GUDATA_SEL, SEL_UPL);
 	tf->tf_cs = GSEL(GUCODE_SEL, SEL_UPL);
Index: src/sys/arch/amd64/amd64/spl.S
diff -u src/sys/arch/amd64/amd64/spl.S:1.38 src/sys/arch/amd64/amd64/spl.S:1.39
--- src/sys/arch/amd64/amd64/spl.S:1.38	Wed Dec 26 11:12:57 2018
+++ src/sys/arch/amd64/amd64/spl.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: spl.S,v 1.38 2018/12/26 11:12:57 cherry Exp $	*/
+/*	$NetBSD: spl.S,v 1.39 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -308,7 +308,7 @@ IDTVEC(spllower)
 	movl	%edi,%ebx
 	leaq	1f(%rip),%r13		/* address to resume loop at */
 1:	movl	%ebx,%eax		/* get cpl */
-#if !defined(XEN)
+#if !defined(XENPV)
 	movl	CPUVAR(IUNMASK)(,%rax,4),%eax
 	CLI(si)
 	andl	CPUVAR(IPENDING),%eax	/* any non-masked bits left? */
@@ -352,7 +352,7 @@ IDTVEC(doreti)
 	decl	CPUVAR(IDEPTH)
 	leaq	1f(%rip),%r13
 1:	movl	%ebx,%eax
-#if !defined(XEN)
+#if !defined(XENPV)
 	movl	CPUVAR(IUNMASK)(,%rax,4),%eax
 	CLI(si)
 	andl	CPUVAR(IPENDING),%eax

Index: src/sys/arch/amd64/amd64/trap.c
diff -u src/sys/arch/amd64/amd64/trap.c:1.116 src/sys/arch/amd64/amd64/trap.c:1.117
--- src/sys/arch/amd64/amd64/trap.c:1.116	Sun Feb  3 03:19:26 2019
+++ src/sys/arch/amd64/amd64/trap.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.116 2019/02/03 03:19:26 mrg Exp $	*/
+/*	$NetBSD: trap.c,v 1.117 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2000, 2017 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.116 2019/02/03 03:19:26 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.117 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -102,7 +102,7 @@ __KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.1
 
 #include <x86/nmi.h>
 
-#ifndef XEN
+#ifndef XENPV
 #include "isa.h"
 #endif
 
@@ -590,7 +590,7 @@ faultcommon:
 				 * the copy functions, and so visible
 				 * to cpu_kpreempt_exit().
 				 */
-#ifndef XEN
+#ifndef XENPV
 				x86_disable_intr();
 #endif
 				l->l_nopreempt--;
@@ -598,7 +598,7 @@ faultcommon:
 				    pfail) {
 					return;
 				}
-#ifndef XEN
+#ifndef XENPV
 				x86_enable_intr();
 #endif
 				/*

Index: src/sys/arch/amd64/amd64/vector.S
diff -u src/sys/arch/amd64/amd64/vector.S:1.65 src/sys/arch/amd64/amd64/vector.S:1.66
--- src/sys/arch/amd64/amd64/vector.S:1.65	Tue Dec 25 06:50:11 2018
+++ src/sys/arch/amd64/amd64/vector.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vector.S,v 1.65 2018/12/25 06:50:11 cherry Exp $	*/
+/*	$NetBSD: vector.S,v 1.66 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -264,7 +264,7 @@ IDTVEC_END(intr_lapic_ltimer)
 
 #endif /* NLAPIC > 0 */
 
-#ifndef XEN
+#ifndef XENPV
 /*
  * TLB shootdown handler.
  */
@@ -298,11 +298,11 @@ IDTVEC(intr_x2apic_tlb)
 IDTVEC_END(intr_x2apic_tlb)
 	TEXT_USER_END
 
-#endif /* !XEN */
+#endif /* !XENPV */
 
 #define voidop(num)
 
-#ifndef XEN
+#ifndef XENPV
 
 /*
  * This macro defines the generic stub code. Its arguments modify it
@@ -643,7 +643,7 @@ INTRSTUB_ARRAY_32(x2apic_edge)
 INTRSTUB_ARRAY_32(x2apic_level)
 #endif
 
-#endif /* !defined(XEN) */
+#endif /* !defined(XENPV) */
 
 #if defined(XEN)
 /* Resume/recurse procedures for spl() */

Index: src/sys/arch/amd64/conf/XEN3_DOM0
diff -u src/sys/arch/amd64/conf/XEN3_DOM0:1.165 src/sys/arch/amd64/conf/XEN3_DOM0:1.166
--- src/sys/arch/amd64/conf/XEN3_DOM0:1.165	Wed Feb  6 11:58:30 2019
+++ src/sys/arch/amd64/conf/XEN3_DOM0	Mon Feb 11 14:59:32 2019
@@ -1,7 +1,8 @@
-# $NetBSD: XEN3_DOM0,v 1.165 2019/02/06 11:58:30 rin Exp $
+# $NetBSD: XEN3_DOM0,v 1.166 2019/02/11 14:59:32 cherry Exp $
 
 include 	"arch/amd64/conf/std.xen"
 
+options		XENPV		# PV dom0 support
 #options 	MULTIPROCESSOR	# (not yet - dom0 stuff is not MP-safe)
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
@@ -10,7 +11,7 @@ options 	INCLUDE_CONFIG_FILE	# embed con
 #options 	UVMHIST_PRINT
 #options 	SYSCALL_DEBUG
 
-#ident		"XEN3_DOM0-$Revision: 1.165 $"
+#ident		"XEN3_DOM0-$Revision: 1.166 $"
 
 maxusers	32		# estimated number of users
 

Index: src/sys/arch/amd64/conf/XEN3_DOMU
diff -u src/sys/arch/amd64/conf/XEN3_DOMU:1.87 src/sys/arch/amd64/conf/XEN3_DOMU:1.88
--- src/sys/arch/amd64/conf/XEN3_DOMU:1.87	Tue Aug 14 06:04:24 2018
+++ src/sys/arch/amd64/conf/XEN3_DOMU	Mon Feb 11 14:59:32 2019
@@ -1,7 +1,8 @@
-# $NetBSD: XEN3_DOMU,v 1.87 2018/08/14 06:04:24 maxv Exp $
+# $NetBSD: XEN3_DOMU,v 1.88 2019/02/11 14:59:32 cherry Exp $
 
 include 	"arch/amd64/conf/std.xen"
 
+options		XENPV		# PV domU support
 options 	MULTIPROCESSOR
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
@@ -10,7 +11,7 @@ options 	INCLUDE_CONFIG_FILE	# embed con
 #options 	UVMHIST_PRINT
 #options 	SYSCALL_DEBUG
 
-#ident		"XEN3_DOMU-$Revision: 1.87 $"
+#ident		"XEN3_DOMU-$Revision: 1.88 $"
 
 maxusers	32		# estimated number of users
 

Index: src/sys/arch/amd64/include/cpu.h
diff -u src/sys/arch/amd64/include/cpu.h:1.63 src/sys/arch/amd64/include/cpu.h:1.64
--- src/sys/arch/amd64/include/cpu.h:1.63	Sun Nov 18 23:50:48 2018
+++ src/sys/arch/amd64/include/cpu.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.63 2018/11/18 23:50:48 cherry Exp $	*/
+/*	$NetBSD: cpu.h,v 1.64 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -83,13 +83,13 @@ cpu_set_curpri(int pri)
 }
 #endif	/* __GNUC__ && !_MODULE */
 
-#ifdef XEN
+#ifdef XENPV
 #define	CLKF_USERMODE(frame)	(curcpu()->ci_xen_clockf_usermode)
 #define CLKF_PC(frame)		(curcpu()->ci_xen_clockf_pc)
-#else /* XEN */
+#else /* XENPV */
 #define	CLKF_USERMODE(frame)	USERMODE((frame)->cf_if.if_tf.tf_cs)
 #define CLKF_PC(frame)		((frame)->cf_if.if_tf.tf_rip)
-#endif /* XEN */
+#endif /* XENPV */
 #define CLKF_INTR(frame)	(curcpu()->ci_idepth > 0)
 #define LWP_PC(l)		((l)->l_md.md_regs->tf_rip)
 

Index: src/sys/arch/amd64/include/frame.h
diff -u src/sys/arch/amd64/include/frame.h:1.20 src/sys/arch/amd64/include/frame.h:1.21
--- src/sys/arch/amd64/include/frame.h:1.20	Mon Nov 19 15:43:32 2018
+++ src/sys/arch/amd64/include/frame.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: frame.h,v 1.20 2018/11/19 15:43:32 kre Exp $	*/
+/*	$NetBSD: frame.h,v 1.21 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -97,7 +97,7 @@ struct intrframe {
 	struct trapframe if_tf;
 };
 
-#ifdef XEN
+#ifdef XENPV
 /*
  * Need arch independany way to access IP and CS from intrframe
  */

Index: src/sys/arch/amd64/include/frameasm.h
diff -u src/sys/arch/amd64/include/frameasm.h:1.41 src/sys/arch/amd64/include/frameasm.h:1.42
--- src/sys/arch/amd64/include/frameasm.h:1.41	Sun Aug 12 13:31:16 2018
+++ src/sys/arch/amd64/include/frameasm.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: frameasm.h,v 1.41 2018/08/12 13:31:16 maxv Exp $	*/
+/*	$NetBSD: frameasm.h,v 1.42 2019/02/11 14:59:32 cherry Exp $	*/
 
 #ifndef _AMD64_MACHINE_FRAMEASM_H
 #define _AMD64_MACHINE_FRAMEASM_H
@@ -13,7 +13,7 @@
  * and system calls. Currently all the same; will diverge later.
  */
 
-#ifdef XEN
+#ifdef XENPV
 #define HYPERVISOR_iret hypercall_page + (__HYPERVISOR_iret * 32)
 /* Xen do not need swapgs, done by hypervisor */
 #define swapgs
@@ -29,7 +29,7 @@
  	movq CPUVAR(VCPU),%r ## temp_reg ;			\
 	movb $0,EVTCHN_UPCALL_MASK(%r ## temp_reg);
 
-#else /* XEN */
+#else /* XENPV */
 #define	XEN_ONLY2(x,y)
 #define	NOT_XEN(x)	x
 #define CLI(temp_reg) cli

Index: src/sys/arch/amd64/include/param.h
diff -u src/sys/arch/amd64/include/param.h:1.28 src/sys/arch/amd64/include/param.h:1.29
--- src/sys/arch/amd64/include/param.h:1.28	Mon Jan  7 22:00:30 2019
+++ src/sys/arch/amd64/include/param.h	Mon Feb 11 14:59:32 2019
@@ -1,8 +1,8 @@
-/*	$NetBSD: param.h,v 1.28 2019/01/07 22:00:30 jdolecek Exp $	*/
+/*	$NetBSD: param.h,v 1.29 2019/02/11 14:59:32 cherry Exp $	*/
 
 #ifdef __x86_64__
 
-#ifndef XEN
+#ifndef XENPV
 /* Must be defined before cpu.h */
 #define	MAXCPUS		256
 #endif

Index: src/sys/arch/amd64/include/pmap.h
diff -u src/sys/arch/amd64/include/pmap.h:1.58 src/sys/arch/amd64/include/pmap.h:1.59
--- src/sys/arch/amd64/include/pmap.h:1.58	Mon Nov 19 20:44:51 2018
+++ src/sys/arch/amd64/include/pmap.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.58 2018/11/19 20:44:51 maxv Exp $	*/
+/*	$NetBSD: pmap.h,v 1.59 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -79,7 +79,7 @@
 #endif
 
 #include <uvm/uvm_object.h>
-#ifdef XEN
+#ifdef XENPV
 #include <xen/xenfunc.h>
 #include <xen/xenpmap.h>
 #endif
@@ -99,7 +99,7 @@
 
 #define NL4_SLOT_DIRECT		32
 
-#ifndef XEN
+#ifndef XENPV
 #define L4_SLOT_PTE		slotspace.area[SLAREA_PTE].sslot
 #else
 #define L4_SLOT_PTE		509
@@ -118,7 +118,7 @@
  * PDP_BASE: the base VA of the recursive mapping of the PTD
  */
 
-#ifndef XEN
+#ifndef XENPV
 extern pt_entry_t *pte_base;
 #define PTE_BASE	pte_base
 #else
@@ -180,7 +180,7 @@ extern bool svs_enabled;
 
 #include <x86/pmap.h>
 
-#ifndef XEN
+#ifndef XENPV
 #define pmap_pa2pte(a)			(a)
 #define pmap_pte2pa(a)			((a) & PG_FRAME)
 #define pmap_pte_set(p, n)		do { *(p) = (n); } while (0)
Index: src/sys/arch/amd64/include/types.h
diff -u src/sys/arch/amd64/include/types.h:1.58 src/sys/arch/amd64/include/types.h:1.59
--- src/sys/arch/amd64/include/types.h:1.58	Thu Nov 15 04:59:02 2018
+++ src/sys/arch/amd64/include/types.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: types.h,v 1.58 2018/11/15 04:59:02 riastradh Exp $	*/
+/*	$NetBSD: types.h,v 1.59 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -102,7 +102,7 @@ typedef	unsigned char		__cpu_simple_lock
 
 #include "opt_xen.h"
 #include "opt_kasan.h"
-#if defined(__x86_64__) && !defined(XEN)
+#if defined(__x86_64__) && !defined(XENPV)
 #if !defined(KASAN)
 #define	__HAVE_PCPU_AREA 1
 #define	__HAVE_DIRECT_MAP 1

Index: src/sys/arch/amd64/include/profile.h
diff -u src/sys/arch/amd64/include/profile.h:1.18 src/sys/arch/amd64/include/profile.h:1.19
--- src/sys/arch/amd64/include/profile.h:1.18	Mon Apr 11 14:15:30 2016
+++ src/sys/arch/amd64/include/profile.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: profile.h,v 1.18 2016/04/11 14:15:30 bouyer Exp $	*/
+/*	$NetBSD: profile.h,v 1.19 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -79,7 +79,7 @@ __asm(" .globl __mcount		\n"			\
 
 
 #ifdef _KERNEL
-#ifdef XEN
+#ifdef XENPV
 static inline void
 mcount_disable_intr(void)
 {
@@ -103,7 +103,7 @@ mcount_write_psl(u_long psl)
 	/* XXX can't call hypervisor_force_callback() because we're in mcount*/ 
 }
 
-#else /* XEN */
+#else /* XENPV */
 static inline void
 mcount_disable_intr(void)
 {
@@ -125,7 +125,7 @@ mcount_write_psl(u_long ef)
 	__asm volatile("pushq %0; popfq" : : "r" (ef));
 }
 
-#endif /* XEN */
+#endif /* XENPV */
 
 #define MCOUNT_ENTER	\
 	do { s = (int)mcount_read_psl(); mcount_disable_intr(); } while (0)

Index: src/sys/arch/amd64/include/segments.h
diff -u src/sys/arch/amd64/include/segments.h:1.35 src/sys/arch/amd64/include/segments.h:1.36
--- src/sys/arch/amd64/include/segments.h:1.35	Sun Sep 23 00:59:59 2018
+++ src/sys/arch/amd64/include/segments.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: segments.h,v 1.35 2018/09/23 00:59:59 cherry Exp $	*/
+/*	$NetBSD: segments.h,v 1.36 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1990 The Regents of the University of California.
@@ -96,7 +96,7 @@
  */
 
 #define ISPL(s)		((s) & SEL_RPL)	/* what is the priority level of a selector */
-#ifdef XEN
+#ifdef XENPV
 #define SEL_KPL		3		/* kernel privilege level */
 #define SEL_XPL		0		/* Xen Hypervisor privilege level */
 #else
@@ -107,7 +107,7 @@
 #define ISLDT(s)	((s) & SEL_LDT)	/* is it local or global */
 #define SEL_LDT		4		/* local descriptor table */
 
-#ifdef XEN
+#ifdef XENPV
 #define IOPL_KPL	1
 #else
 #define IOPL_KPL	SEL_KPL
@@ -136,7 +136,7 @@
 #define LSEL(s,r)	((s) | r | SEL_LDT)
 
 #define USERMODE(c)		(ISPL(c) == SEL_UPL)
-#ifdef XEN
+#ifdef XENPV
 /*
  * As KPL == UPL, Xen emulate interrupt in kernel context by pushing
  * a fake CS with XPL privilege
@@ -233,11 +233,11 @@ struct region_descriptor {
 } __packed;
 
 #ifdef _KERNEL
-#ifdef XEN
+#ifdef XENPV
 typedef struct trap_info idt_descriptor_t;
 #else
 typedef struct gate_descriptor idt_descriptor_t; 
-#endif /* XEN */
+#endif /* XENPV */
 extern idt_descriptor_t *idt;
 extern char *gdtstore;
 extern char *ldtstore;

Index: src/sys/arch/amd64/include/vmparam.h
diff -u src/sys/arch/amd64/include/vmparam.h:1.50 src/sys/arch/amd64/include/vmparam.h:1.51
--- src/sys/arch/amd64/include/vmparam.h:1.50	Thu Jan 17 19:26:03 2019
+++ src/sys/arch/amd64/include/vmparam.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vmparam.h,v 1.50 2019/01/17 19:26:03 maxv Exp $	*/
+/*	$NetBSD: vmparam.h,v 1.51 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -125,7 +125,7 @@
  * MIN = VA_SIGN_NEG(L4_SLOT_KERN * NBPD_L4)
  * MAX = MIN + NKL4_MAX_ENTRIES * NBPD_L4
  */
-#ifndef XEN
+#ifndef XENPV
 #define VM_MIN_KERNEL_ADDRESS_DEFAULT	0xffff800000000000
 #define VM_MAX_KERNEL_ADDRESS_DEFAULT	0xffffa00000000000
 #else

Index: src/sys/arch/i386/conf/XEN3PAE_DOM0
diff -u src/sys/arch/i386/conf/XEN3PAE_DOM0:1.12 src/sys/arch/i386/conf/XEN3PAE_DOM0:1.13
--- src/sys/arch/i386/conf/XEN3PAE_DOM0:1.12	Wed Feb  6 11:58:31 2019
+++ src/sys/arch/i386/conf/XEN3PAE_DOM0	Mon Feb 11 14:59:32 2019
@@ -1,9 +1,10 @@
-#	$NetBSD: XEN3PAE_DOM0,v 1.12 2019/02/06 11:58:31 rin Exp $
+#	$NetBSD: XEN3PAE_DOM0,v 1.13 2019/02/11 14:59:32 cherry Exp $
 #
 #	XEN3_0: Xen 3.0 domain0 kernel
 
 include 	"arch/xen/conf/std.xen"
 
+options		XENPV		# PV dom0 support
 #options 	MULTIPROCESSOR	# (not yet - dom0 stuff is not MP-safe)
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

Index: src/sys/arch/i386/conf/XEN3PAE_DOMU
diff -u src/sys/arch/i386/conf/XEN3PAE_DOMU:1.5 src/sys/arch/i386/conf/XEN3PAE_DOMU:1.6
--- src/sys/arch/i386/conf/XEN3PAE_DOMU:1.5	Tue Aug 14 06:04:24 2018
+++ src/sys/arch/i386/conf/XEN3PAE_DOMU	Mon Feb 11 14:59:32 2019
@@ -1,7 +1,8 @@
-# $NetBSD: XEN3PAE_DOMU,v 1.5 2018/08/14 06:04:24 maxv Exp $
+# $NetBSD: XEN3PAE_DOMU,v 1.6 2019/02/11 14:59:32 cherry Exp $
 
 include 	"arch/xen/conf/std.xen"
 
+options		XENPV		# PV domU support
 options 	MULTIPROCESSOR
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

Index: src/sys/arch/i386/i386/cpufunc.S
diff -u src/sys/arch/i386/i386/cpufunc.S:1.27 src/sys/arch/i386/i386/cpufunc.S:1.28
--- src/sys/arch/i386/i386/cpufunc.S:1.27	Sun Jan  6 14:35:31 2019
+++ src/sys/arch/i386/i386/cpufunc.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpufunc.S,v 1.27 2019/01/06 14:35:31 cherry Exp $	*/
+/*	$NetBSD: cpufunc.S,v 1.28 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2007 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
 #include <sys/errno.h>
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: cpufunc.S,v 1.27 2019/01/06 14:35:31 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpufunc.S,v 1.28 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_xen.h"
 
@@ -65,13 +65,13 @@ ENTRY(x86_mfence)
 	ret
 END(x86_mfence)
 
-#ifndef XEN
+#ifndef XENPV
 ENTRY(lidt)
 	movl	4(%esp), %eax
 	lidt	(%eax)
 	ret
 END(lidt)
-#endif /* XEN */
+#endif /* XENPV */
 
 ENTRY(rcr3)
 	movl	%cr3, %eax
@@ -102,10 +102,10 @@ ENTRY(x86_write_flags)
 	ret
 END(x86_write_flags)
 
-#ifndef XEN
+#ifndef XENPV
 STRONG_ALIAS(x86_write_psl,x86_write_flags)
 STRONG_ALIAS(x86_read_psl,x86_read_flags)
-#endif	/* XEN */
+#endif	/* XENPV */
 
 ENTRY(rdmsr)
 	movl	4(%esp), %ecx

Index: src/sys/arch/i386/i386/db_interface.c
diff -u src/sys/arch/i386/i386/db_interface.c:1.82 src/sys/arch/i386/i386/db_interface.c:1.83
--- src/sys/arch/i386/i386/db_interface.c:1.82	Tue Apr  3 07:20:52 2018
+++ src/sys/arch/i386/i386/db_interface.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: db_interface.c,v 1.82 2018/04/03 07:20:52 christos Exp $	*/
+/*	$NetBSD: db_interface.c,v 1.83 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Mach Operating System
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.82 2018/04/03 07:20:52 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.83 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -94,9 +94,9 @@ void kdbprinttrap(int, int);
 extern void ddb_ipi(struct trapframe);
 extern void ddb_ipi_tss(struct i386tss *);
 static void ddb_suspend(struct trapframe *);
-#ifndef XEN
+#ifndef XENPV
 int ddb_vec;
-#endif /* XEN */
+#endif /* XENPV */
 static bool ddb_mp_online;
 #endif
 
@@ -112,7 +112,7 @@ db_machine_init(void)
 {
 
 #ifdef MULTIPROCESSOR
-#ifndef XEN
+#ifndef XENPV
 	vector *handler = &Xintr_ddbipi;
 #if NLAPIC > 0
 	if (lapic_is_x2apic())
@@ -122,7 +122,7 @@ db_machine_init(void)
 	idt_vec_set(ddb_vec, handler);
 #else
 	/* Initialised as part of xen_ipi_init() */
-#endif /* XEN */
+#endif /* XENPV */
 #endif
 }
 
@@ -136,10 +136,10 @@ db_suspend_others(void)
 	int cpu_me = cpu_number();
 	int win;
 
-#ifndef XEN
+#ifndef XENPV
 	if (ddb_vec == 0)
 		return 1;
-#endif /* XEN */
+#endif /* XENPV */
 
 	__cpu_simple_lock(&db_lock);
 	if (ddb_cpu == NOCPU)
@@ -147,11 +147,11 @@ db_suspend_others(void)
 	win = (ddb_cpu == cpu_me);
 	__cpu_simple_unlock(&db_lock);
 	if (win) {
-#ifdef XEN
+#ifdef XENPV
 		xen_broadcast_ipi(XEN_IPI_DDB);
 #else
 		x86_ipi(ddb_vec, LAPIC_DEST_ALLEXCL, LAPIC_DLMODE_FIXED);
-#endif /* XEN */
+#endif /* XENPV */
 	}
 	ddb_mp_online = x86_mp_online;
 	x86_mp_online = false;

Index: src/sys/arch/i386/i386/gdt.c
diff -u src/sys/arch/i386/i386/gdt.c:1.68 src/sys/arch/i386/i386/gdt.c:1.69
--- src/sys/arch/i386/i386/gdt.c:1.68	Thu Jan  4 20:38:31 2018
+++ src/sys/arch/i386/i386/gdt.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: gdt.c,v 1.68 2018/01/04 20:38:31 maxv Exp $	*/
+/*	$NetBSD: gdt.c,v 1.69 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1996, 1997, 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.68 2018/01/04 20:38:31 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.69 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_multiprocessor.h"
 #include "opt_xen.h"
@@ -55,7 +55,7 @@ typedef struct {
 } gdt_bitmap_t;
 
 /* size of GDT in bytes */
-#ifdef XEN
+#ifdef XENPV
 const size_t gdt_size = FIRST_RESERVED_GDT_BYTE;
 #else
 const size_t gdt_size = MAXGDTSIZ;
@@ -64,7 +64,7 @@ const size_t gdt_size = MAXGDTSIZ;
 /* bitmap of busy slots */
 static gdt_bitmap_t gdt_bitmap;
 
-#ifndef XEN
+#ifndef XENPV
 static int ldt_count;	/* number of LDTs */
 static int ldt_max = 1000;/* max number of LDTs */
 static void setgdt(int, const void *, size_t, int, int, int, int);
@@ -76,7 +76,7 @@ void gdt_init(void);
 void
 update_descriptor(union descriptor *table, union descriptor *entry)
 {
-#ifndef XEN
+#ifndef XENPV
 	*table = *entry;
 #else
 	paddr_t pa;
@@ -89,7 +89,7 @@ update_descriptor(union descriptor *tabl
 #endif
 }
 
-#ifndef XEN
+#ifndef XENPV
 /*
  * Called on a newly-allocated GDT slot, so no race between CPUs.
  */
@@ -190,7 +190,7 @@ gdt_alloc_cpu(struct cpu_info *ci)
 void
 gdt_init_cpu(struct cpu_info *ci)
 {
-#ifndef XEN
+#ifndef XENPV
 	struct region_descriptor region;
 
 	setregion(&region, ci->ci_gdt, gdt_size - 1);
@@ -227,7 +227,7 @@ gdt_init_cpu(struct cpu_info *ci)
 #endif
 }
 
-#ifndef XEN
+#ifndef XENPV
 static int
 gdt_get_slot(void)
 {

Index: src/sys/arch/i386/i386/genassym.cf
diff -u src/sys/arch/i386/i386/genassym.cf:1.109 src/sys/arch/i386/i386/genassym.cf:1.110
--- src/sys/arch/i386/i386/genassym.cf:1.109	Sat Feb  2 12:32:54 2019
+++ src/sys/arch/i386/i386/genassym.cf	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.109 2019/02/02 12:32:54 cherry Exp $
+#	$NetBSD: genassym.cf,v 1.110 2019/02/11 14:59:32 cherry Exp $
 
 #
 # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -268,7 +268,7 @@ define	CPU_INFO_VENDOR		offsetof(struct 
 define	CPU_INFO_SIGNATURE	offsetof(struct cpu_info, ci_signature)
 
 define	CPU_INFO_GDT		offsetof(struct cpu_info, ci_gdt)
-if !defined(XEN)
+if !defined(XENPV)
 define	CPU_INFO_IPENDING	offsetof(struct cpu_info, ci_ipending)
 define	CPU_INFO_IMASK		offsetof(struct cpu_info, ci_imask)
 define	CPU_INFO_ISOURCES	offsetof(struct cpu_info, ci_isources)

Index: src/sys/arch/i386/i386/i386_trap.S
diff -u src/sys/arch/i386/i386/i386_trap.S:1.16 src/sys/arch/i386/i386/i386_trap.S:1.17
--- src/sys/arch/i386/i386/i386_trap.S:1.16	Tue Dec 25 09:00:26 2018
+++ src/sys/arch/i386/i386/i386_trap.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: i386_trap.S,v 1.16 2018/12/25 09:00:26 cherry Exp $	*/
+/*	$NetBSD: i386_trap.S,v 1.17 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright 2002 (c) Wasabi Systems, Inc.
@@ -66,7 +66,7 @@
 
 #if 0
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: i386_trap.S,v 1.16 2018/12/25 09:00:26 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i386_trap.S,v 1.17 2019/02/11 14:59:32 cherry Exp $");
 #endif
 
 /*
@@ -95,7 +95,7 @@ IDTVEC_END(trap00)
  * without restoring the segregs, because we could fault while doing that.
  */
 IDTVEC(trap01)
-#ifndef XEN
+#ifndef XENPV
 	pushl	$0
 	pushl	$T_TRCTRAP
 	INTRENTRY
@@ -248,7 +248,7 @@ IDTVEC(trap0d)
 IDTVEC_END(trap0d)
 
 IDTVEC(trap0e)
-#ifndef XEN
+#ifndef XENPV
 	pushl	$T_PAGEFLT
 	INTRENTRY
 	STI(%eax)
@@ -345,7 +345,7 @@ IDTVEC_END(trap17)
 IDTVEC_END(trap16)
 IDTVEC_END(trap15)
 IDTVEC_END(trap14)
-#ifndef XEN
+#ifndef XENPV
 IDTVEC_END(trap13)
 IDTVEC_END(trap12)
 #else

Index: src/sys/arch/i386/i386/lock_stubs.S
diff -u src/sys/arch/i386/i386/lock_stubs.S:1.29 src/sys/arch/i386/i386/lock_stubs.S:1.30
--- src/sys/arch/i386/i386/lock_stubs.S:1.29	Sat Jul 14 14:29:40 2018
+++ src/sys/arch/i386/i386/lock_stubs.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: lock_stubs.S,v 1.29 2018/07/14 14:29:40 maxv Exp $	*/
+/*	$NetBSD: lock_stubs.S,v 1.30 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: lock_stubs.S,v 1.29 2018/07/14 14:29:40 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lock_stubs.S,v 1.30 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_lockdebug.h"
 
@@ -223,7 +223,7 @@ ENTRY(rw_tryenter)
 	jmp	3b
 END(rw_tryenter)
 
-#ifndef __XEN__
+#ifndef XENPV
 
 /*
  * void mutex_spin_enter(kmutex_t *mtx);
@@ -307,7 +307,7 @@ LABEL(i686_mutex_spin_exit_patch)
 LABEL(i686_mutex_spin_exit_end)
 END(i686_mutex_spin_exit)
 
-#else	/* !__XEN__ */
+#else	/* !XENPV */
 
 /* For now; strong alias not working for some reason. */
 ENTRY(mutex_spin_enter)
@@ -316,7 +316,7 @@ ENTRY(mutex_spin_enter)
 ENTRY(mutex_spin_exit)
 	jmp	_C_LABEL(mutex_vector_exit)
 
-#endif	/* !__XEN__ */
+#endif	/* !XENPV */
 
 #endif	/* !LOCKDEBUG */
 

Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.162 src/sys/arch/i386/i386/locore.S:1.163
--- src/sys/arch/i386/i386/locore.S:1.162	Wed Dec 26 06:37:31 2018
+++ src/sys/arch/i386/i386/locore.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.162 2018/12/26 06:37:31 cherry Exp $	*/
+/*	$NetBSD: locore.S,v 1.163 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -128,7 +128,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.162 2018/12/26 06:37:31 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.163 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_copy_symtab.h"
 #include "opt_ddb.h"
@@ -153,18 +153,18 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1
 #include <machine/i82489reg.h>
 #include <machine/cputypes.h>
 
-#ifndef XEN
+#ifndef XENPV
 #include <machine/multiboot.h>
 #endif
 
 /* Get definitions for IOM_BEGIN, IOM_END, and IOM_SIZE */
 #include <dev/isa/isareg.h>
 
-#ifndef XEN
+#ifndef XENPV
 #define	_RELOC(x)	((x) - KERNBASE)
 #else
 #define	_RELOC(x)	((x))
-#endif /* XEN */
+#endif /* XENPV */
 #define	RELOC(x)	_RELOC(_C_LABEL(x))
 
 /* 32bit version of PG_NX */
@@ -242,7 +242,7 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1
 	loop	1b			;
 
 
-#ifdef XEN
+#ifdef XENPV
 /*
  * Xen guest identifier and loader selection
  */
@@ -259,7 +259,7 @@ __KERNEL_RCSID(0, "$NetBSD: locore.S,v 1
 	.ascii	",BSD_SYMTAB=yes"
 #endif
 	.byte	0
-#endif	/* XEN */
+#endif	/* XENPV */
 
 /*
  * Initialization
@@ -304,19 +304,19 @@ END(PDPpaddr)
 	.size	tmpstk, tmpstk - .
 	.space	512
 tmpstk:
-#ifdef XEN
+#ifdef XENPV
 	.align 		PAGE_SIZE, 0x0	/* Align on page boundary */
 LABEL(tmpgdt)
 	.space 		PAGE_SIZE	/* Xen expects a page */
 END(tmpgdt)
-#endif /* XEN */
+#endif /* XENPV */
 
 	.text
 	.globl	_C_LABEL(kernel_text)
 	.set	_C_LABEL(kernel_text),KERNTEXTOFF
 
 ENTRY(start)
-#ifndef XEN
+#ifndef XENPV
 
 	/* Warm boot */
 	movw	$0x1234,0x472
@@ -842,7 +842,7 @@ begin:
 	addl	$NGDT*8,%esp		/* pop temporary gdt */
 
 	call 	_C_LABEL(main)
-#else /* XEN */
+#else /* XENPV */
 	/* First, reset the PSL. */
 	pushl	$PSL_MBO
 	popfl
@@ -910,7 +910,7 @@ begin:
 	call	_C_LABEL(init386)
 	addl	$PDE_SIZE,%esp		/* pop paddr_t */
 	call 	_C_LABEL(main)
-#endif /* XEN */
+#endif /* XENPV */
 END(start)
 
 #if defined(XEN)
@@ -921,6 +921,7 @@ ENTRY(hypercall_page)
 .skip 0x1000
 END(hypercall_page)
 
+#ifdef XENPV
 /*
  * void lgdt_finish(void);
  * Finish load a new GDT pointer (do any necessary cleanup).
@@ -945,6 +946,7 @@ ENTRY(lgdt_finish)
 	lret
 END(lgdt_finish)
 
+#endif /* XENPV */
 #endif /* XEN */
 
 /*
@@ -1061,7 +1063,7 @@ ENTRY(cpu_switchto)
 	pushl	%esi
 	pushl	%edi
 
-#if defined(DIAGNOSTIC) && !defined(XEN)
+#if defined(DIAGNOSTIC) && !defined(XENPV)
 	cmpl	$IPL_SCHED,CPUVAR(ILEVEL)
 	jbe	0f
 	pushl	CPUVAR(ILEVEL)
@@ -1102,7 +1104,7 @@ skip_save:
 	jnz	switch_return
 
 	/* Switch ring0 stack */
-#ifdef XEN
+#ifdef XENPV
 	pushl	%edi
 	call	_C_LABEL(i386_switch_context)
 	addl	$4,%esp
@@ -1118,7 +1120,7 @@ skip_save:
 	call	_C_LABEL(x86_dbregs_switch)
 	addl	$8,%esp
 
-#ifndef XEN
+#ifndef XENPV
 	pushl	%edx
 	movb	_C_LABEL(x86_fpu_eager),%dl
 	testb	%dl,%dl
@@ -1135,7 +1137,7 @@ skip_save:
 	testl	$LW_SYSTEM,L_FLAG(%edi)
 	jnz	switch_return
 
-#ifndef XEN
+#ifndef XENPV
 	/* Restore thread-private %fs/%gs descriptors. */
 	movl	CPUVAR(GDT),%ecx
 	movl	PCB_FSD(%ebx),%eax
@@ -1146,7 +1148,7 @@ skip_save:
 	movl	PCB_GSD+4(%ebx),%edx
 	movl	%eax,(GUGS_SEL*8)(%ecx)
 	movl	%edx,(GUGS_SEL*8+4)(%ecx)
-#endif /* !XEN */
+#endif /* !XENPV */
 
 	/* Switch I/O bitmap */
 	movl	PCB_IOMAP(%ebx),%eax
@@ -1178,11 +1180,11 @@ no_RAS:
 	 * FPU IPIs can alter the LWP's saved cr0.  Dropping the priority
 	 * is deferred until mi_switch(), when cpu_switchto() returns.
 	 */
-#ifdef XEN
+#ifdef XENPV
 	pushl	%edi
 	call	_C_LABEL(i386_tls_switch)
 	addl	$4,%esp
-#else /* !XEN */
+#else /* !XENPV */
 	movl	$IPL_HIGH,CPUVAR(ILEVEL)
 	movl	PCB_CR0(%ebx),%ecx		/* has CR0_TS clear */
 	movl	%cr0,%edx
@@ -1200,7 +1202,7 @@ skip_TS:
 	cmpl	%edx,%ecx
 	je	switch_return
 	movl	%ecx,%cr0
-#endif /* !XEN */
+#endif /* !XENPV */
 
 switch_return:
 	/* Return to the new LWP, returning 'oldlwp' in %eax. */

Index: src/sys/arch/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.814 src/sys/arch/i386/i386/machdep.c:1.815
--- src/sys/arch/i386/i386/machdep.c:1.814	Mon Dec 10 15:08:23 2018
+++ src/sys/arch/i386/i386/machdep.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.814 2018/12/10 15:08:23 maxv Exp $	*/
+/*	$NetBSD: machdep.c,v 1.815 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009, 2017
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.814 2018/12/10 15:08:23 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.815 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_beep.h"
 #include "opt_compat_freebsd.h"
@@ -227,13 +227,13 @@ extern struct bootspace bootspace;
 
 extern paddr_t lowmem_rsvd;
 extern paddr_t avail_start, avail_end;
-#ifdef XEN
+#ifdef XENPV
 extern paddr_t pmap_pa_start, pmap_pa_end;
 void hypervisor_callback(void);
 void failsafe_callback(void);
 #endif
 
-#ifdef XEN
+#ifdef XENPV
 void (*delay_func)(unsigned int) = xen_delay;
 void (*initclock_func)(void) = xen_initclocks;
 #else
@@ -259,7 +259,7 @@ int *esym;
 int *eblob;
 extern int boothowto;
 
-#ifndef XEN
+#ifndef XENPV
 
 /* Base memory reported by BIOS. */
 #ifndef REALBASEMEM
@@ -376,7 +376,7 @@ native_loader(int bl_boothowto, int bl_b
 #undef RELOC
 }
 
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * Machine-dependent startup code
@@ -446,7 +446,7 @@ cpu_startup(void)
 	i386_proc0_pcb_ldt_init();
 
 	cpu_init_tss(&cpu_info_primary);
-#ifndef XEN
+#ifndef XENPV
 	ltr(cpu_info_primary.ci_tss_sel);
 #endif
 
@@ -470,7 +470,7 @@ i386_proc0_pcb_ldt_init(void)
 	memcpy(&pcb->pcb_gsd, &gdtstore[GUDATA_SEL], sizeof(pcb->pcb_gsd));
 	pcb->pcb_dbregs = NULL;
 
-#ifndef XEN
+#ifndef XENPV
 	lldt(GSEL(GLDT_SEL, SEL_KPL));
 #else
 	HYPERVISOR_fpu_taskswitch(1);
@@ -478,7 +478,7 @@ i386_proc0_pcb_ldt_init(void)
 #endif
 }
 
-#ifdef XEN
+#ifdef XENPV
 /* used in assembly */
 void i386_switch_context(lwp_t *);
 void i386_tls_switch(lwp_t *);
@@ -530,13 +530,13 @@ i386_tls_switch(lwp_t *l)
 			  (union descriptor *) &pcb->pcb_gsd);
 
 }
-#endif /* XEN */
+#endif /* XENPV */
 
 /* XXX */
 #define IDTVEC(name)	__CONCAT(X, name)
 typedef void (vector)(void);
 
-#ifndef XEN
+#ifndef XENPV
 static void	tss_init(struct i386tss *, void *, void *);
 
 static void
@@ -605,7 +605,7 @@ cpu_set_tss_gates(struct cpu_info *ci)
 	    GSEL(GIPITSS_SEL, SEL_KPL));
 #endif
 }
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * Set up TSS and I/O bitmap.
@@ -619,14 +619,14 @@ cpu_init_tss(struct cpu_info *ci)
 	    sizeof(struct cpu_tss), 0, UVM_KMF_WIRED|UVM_KMF_ZERO);
 
 	cputss->tss.tss_iobase = IOMAP_INVALOFF << 16;
-#ifndef XEN
+#ifndef XENPV
 	cputss->tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL);
 	cputss->tss.tss_ldt = GSEL(GLDT_SEL, SEL_KPL);
 	cputss->tss.tss_cr3 = rcr3();
 #endif
 
 	ci->ci_tss = cputss;
-#ifndef XEN
+#ifndef XENPV
 	ci->ci_tss_sel = tss_alloc(&cputss->tss);
 #endif
 }
@@ -801,7 +801,7 @@ haltsys:
 #else
 		__USE(s);
 #endif
-#ifdef XEN
+#ifdef XENPV
 		HYPERVISOR_shutdown();
 		for (;;);
 #endif
@@ -958,7 +958,7 @@ setsegment(struct segment_descriptor *sd
 /* XXX */
 extern vector IDTVEC(syscall);
 extern vector *IDTVEC(exceptions)[];
-#ifdef XEN
+#ifdef XENPV
 extern union descriptor tmpgdt[];
 #endif
 
@@ -976,7 +976,7 @@ initgdt(union descriptor *tgdt)
 	KASSERT(tgdt != NULL);
 
 	gdtstore = tgdt;
-#ifdef XEN
+#ifdef XENPV
 	u_long	frames[16];
 #else
 	struct region_descriptor region;
@@ -1004,10 +1004,10 @@ initgdt(union descriptor *tgdt)
 	setsegment(&gdtstore[GCPU_SEL].sd, &cpu_info_primary,
 	    sizeof(struct cpu_info) - 1, SDT_MEMRWA, SEL_KPL, 1, 0);
 
-#ifndef XEN
+#ifndef XENPV
 	setregion(&region, gdtstore, NGDT * sizeof(gdtstore[0]) - 1);
 	lgdt(&region);
-#else /* !XEN */
+#else /* !XENPV */
 	/*
 	 * We jumpstart the bootstrap process a bit so we can update
 	 * page permissions. This is done redundantly later from
@@ -1041,10 +1041,10 @@ initgdt(union descriptor *tgdt)
 		panic("HYPERVISOR_set_gdt failed!\n");
 
 	lgdt_finish();
-#endif /* !XEN */
+#endif /* !XENPV */
 }
 
-#ifndef XEN
+#ifndef XENPV
 static void
 init386_pte0(void)
 {
@@ -1058,7 +1058,7 @@ init386_pte0(void)
 	/* make sure it is clean before using */
 	memset((void *)vaddr, 0, PAGE_SIZE);
 }
-#endif /* !XEN */
+#endif /* !XENPV */
 
 static void
 init386_ksyms(void)
@@ -1133,7 +1133,7 @@ init386(paddr_t first_avail)
 {
 	extern void consinit(void);
 	int x;
-#ifndef XEN
+#ifndef XENPV
 	extern paddr_t local_apic_pa;
 	union descriptor *tgdt;
 	struct region_descriptor region;
@@ -1146,7 +1146,7 @@ init386(paddr_t first_avail)
 
 	KASSERT(first_avail % PAGE_SIZE == 0);
 
-#ifdef XEN
+#ifdef XENPV
 	KASSERT(HYPERVISOR_shared_info != NULL);
 	cpu_info_primary.ci_vcpu = &HYPERVISOR_shared_info->vcpu_info[0];
 #endif
@@ -1155,7 +1155,7 @@ init386(paddr_t first_avail)
 
 	cpu_probe(&cpu_info_primary);
 	cpu_init_msrs(&cpu_info_primary, true);
-#ifndef XEN
+#ifndef XENPV
 	cpu_speculation_init(&cpu_info_primary);
 #endif
 
@@ -1166,11 +1166,11 @@ init386(paddr_t first_avail)
 #endif
 
 	pcb = lwp_getpcb(&lwp0);
-#ifdef XEN
+#ifdef XENPV
 	pcb->pcb_cr3 = PDPpaddr;
 #endif
 
-#if defined(PAE) && !defined(XEN)
+#if defined(PAE) && !defined(XENPV)
 	/*
 	 * Save VA and PA of L3 PD of boot processor (for Xen, this is done
 	 * in xen_locore())
@@ -1190,7 +1190,7 @@ init386(paddr_t first_avail)
 
 	avail_start = first_avail;
 
-#ifndef XEN
+#ifndef XENPV
 	/*
 	 * Low memory reservations:
 	 * Page 0:	BIOS data
@@ -1201,7 +1201,7 @@ init386(paddr_t first_avail)
 	 * Page 5:	Temporary page directory
 	 */
 	lowmem_rsvd = 6 * PAGE_SIZE;
-#else /* !XEN */
+#else /* !XENPV */
 	/* Parse Xen command line (replace bootinfo) */
 	xen_parse_cmdline(XEN_PARSE_BOOTFLAGS, NULL);
 
@@ -1227,7 +1227,7 @@ init386(paddr_t first_avail)
 	initgdt(gdtstore);
 
 	mutex_init(&pte_lock, MUTEX_DEFAULT, IPL_VM);
-#endif /* XEN */
+#endif /* XENPV */
 
 #if NISA > 0 || NPCI > 0
 	x86_bus_space_init();
@@ -1245,13 +1245,13 @@ init386(paddr_t first_avail)
 	 */
 	pmap_bootstrap((vaddr_t)atdevbase + IOM_SIZE);
 
-#ifndef XEN
+#ifndef XENPV
 	/* Initialize the memory clusters. */
 	init_x86_clusters();
 
 	/* Internalize the physical pages into the VM system. */
 	init_x86_vm(avail_start);
-#else /* !XEN */
+#else /* !XENPV */
 	uvm_page_physload(atop(avail_start), atop(avail_end),
 	    atop(avail_start), atop(avail_end),
 	    VM_FREELIST_DEFAULT);
@@ -1268,11 +1268,11 @@ init386(paddr_t first_avail)
 			panic("tmpgdt page relaim RW update failed.\n");
 		}
 	}
-#endif /* !XEN */
+#endif /* !XENPV */
 
 	init_x86_msgbuf();
 
-#if !defined(XEN) && NBIOSCALL > 0
+#if !defined(XENPV) && NBIOSCALL > 0
 	/*
 	 * XXX Remove this
 	 *
@@ -1291,7 +1291,7 @@ init386(paddr_t first_avail)
 	cpu_info_primary.ci_pmap = pmap_kernel();
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 	pmap_kenter_pa(local_apic_va, local_apic_pa,
 	    VM_PROT_READ|VM_PROT_WRITE, 0);
 	pmap_update(pmap_kernel());
@@ -1311,7 +1311,7 @@ init386(paddr_t first_avail)
 	pentium_idt = (union descriptor *)pentium_idt_vaddr;
 	idt = (idt_descriptor_t *)idt_vaddr;
 
-#ifndef XEN	
+#ifndef XENPV	
 	tgdt = gdtstore;
 	gdtstore = (union descriptor *)gdt_vaddr;
 	ldtstore = (union descriptor *)ldt_vaddr;
@@ -1326,7 +1326,7 @@ init386(paddr_t first_avail)
 	    GSEL(GCODE_SEL, SEL_KPL), (unsigned long)failsafe_callback);
 
 	ldtstore = (union descriptor *)ldt_vaddr;
-#endif /* XEN */
+#endif /* XENPV */
 
 	/* make ldt gates and memory segments */
 	ldtstore[LUCODE_SEL] = gdtstore[GUCODE_SEL];
@@ -1337,21 +1337,21 @@ init386(paddr_t first_avail)
 	for (x = 0; x < 32; x++) {
 		/* Reset to default. Special cases below */
 		int sel;
-#ifdef XEN		
+#ifdef XENPV		
 		sel = SEL_XEN;
 #else
 		sel = SEL_KPL;
-#endif /* XEN */
+#endif /* XENPV */
 
 		idt_vec_reserve(x);
 
  		switch (x) {
-#ifdef XEN
+#ifdef XENPV
 		case 2:  /* NMI */
 		case 18: /* MCA */
 			sel |= 0x4; /* Auto EOI/mask */
 			break;
-#endif /* XEN */
+#endif /* XENPV */
 		case 3:
 		case 4:
 			sel = SEL_UPL;
@@ -1368,7 +1368,7 @@ init386(paddr_t first_avail)
 	set_idtgate(&idt[128], &IDTVEC(syscall), 0, SDT_SYS386IGT, SEL_UPL,
 	    GSEL(GCODE_SEL, SEL_KPL));
 
-#ifndef XEN
+#ifndef XENPV
 	setregion(&region, gdtstore, NGDT * sizeof(gdtstore[0]) - 1);
 	lgdt(&region);
 #endif
@@ -1385,7 +1385,7 @@ init386(paddr_t first_avail)
 	mca_busprobe();
 #endif
 
-#ifdef XEN
+#ifdef XENPV
 	events_default_setup();
 #else
 	intr_default_setup();
@@ -1425,10 +1425,10 @@ init386(paddr_t first_avail)
 void
 cpu_reset(void)
 {
-#ifdef XEN
+#ifdef XENPV
 	HYPERVISOR_reboot();
 	for (;;);
-#else /* XEN */
+#else /* XENPV */
 	struct region_descriptor region;
 
 	x86_disable_intr();
@@ -1481,7 +1481,7 @@ cpu_reset(void)
 #endif
 
 	for (;;);
-#endif /* XEN */
+#endif /* XENPV */
 }
 
 void

Index: src/sys/arch/i386/i386/spl.S
diff -u src/sys/arch/i386/i386/spl.S:1.46 src/sys/arch/i386/i386/spl.S:1.47
--- src/sys/arch/i386/i386/spl.S:1.46	Wed Dec 26 11:12:57 2018
+++ src/sys/arch/i386/i386/spl.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: spl.S,v 1.46 2018/12/26 11:12:57 cherry Exp $	*/
+/*	$NetBSD: spl.S,v 1.47 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: spl.S,v 1.46 2018/12/26 11:12:57 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spl.S,v 1.47 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_ddb.h"
 #include "opt_spldebug.h"
@@ -67,7 +67,7 @@ ENTRY(splraise)
 	ret
 END(splraise)
 
-#ifndef XEN
+#ifndef XENPV
 
 /*
  * void spllower(int s);
@@ -144,7 +144,7 @@ LABEL(cx8_spllower_patch)
 LABEL(cx8_spllower_end)
 END(cx8_spllower)
 
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * void Xspllower(int s);
@@ -181,15 +181,15 @@ IDTVEC(spllower)
 	 * from Xdoreti via iret. So we have to always disable interrupts here
 	 * for Xen.
 	 */
-#ifndef XEN
+#ifndef XENPV
 	CLI(%eax)
 #endif
 .Lspllower_resume:
-#ifdef XEN
+#ifdef XENPV
 	CLI(%eax)
 #endif
 #if defined(DEBUG)
-#ifndef XEN
+#ifndef XENPV
 	pushf
 	popl	%eax
 	testl	$PSL_I,%eax
@@ -199,9 +199,9 @@ IDTVEC(spllower)
 	movb	EVTCHN_UPCALL_MASK(%eax),%al
 	andb	%al,%al
 	jz	.Lspllower_panic
-#endif /* XEN */
+#endif /* XENPV */
 #endif /* defined(DEBUG) */
-#if !defined(XEN)
+#if !defined(XENPV)
 	movl	%ebx,%eax			/* get cpl */
 	movl	CPUVAR(IUNMASK)(,%eax,4),%eax
 	andl	CPUVAR(IPENDING),%eax		/* any non-masked bits left? */
@@ -258,7 +258,7 @@ IDTVEC_END(spllower)
  * called with interrupt disabled.
  */
 IDTVEC(doreti)
-#ifndef XEN
+#ifndef XENPV
 	IDEPTH_DECR
 	popl	%ebx			/* get previous priority */
 #endif
@@ -266,7 +266,7 @@ IDTVEC(doreti)
 	movl	$.Ldoreti_resume,%esi	/* address to resume loop at */
 .Ldoreti_resume:
 #if defined(DEBUG)
-#ifndef XEN
+#ifndef XENPV
 	pushf
 	popl	%eax
 	testl	$PSL_I,%eax
@@ -276,9 +276,9 @@ IDTVEC(doreti)
 	movb	EVTCHN_UPCALL_MASK(%eax),%al
 	andb	%al,%al
 	jz	.Ldoreti_panic
-#endif /* XEN */
+#endif /* XENPV */
 #endif /* defined(DEBUG) */
-#if !defined(XEN)
+#if !defined(XENPV)
 	movl	%ebx,%eax
 	movl	CPUVAR(IUNMASK)(,%eax,4),%eax
 	andl	CPUVAR(IPENDING),%eax

Index: src/sys/arch/i386/i386/trap.c
diff -u src/sys/arch/i386/i386/trap.c:1.297 src/sys/arch/i386/i386/trap.c:1.298
--- src/sys/arch/i386/i386/trap.c:1.297	Sun Feb  3 03:19:26 2019
+++ src/sys/arch/i386/i386/trap.c	Mon Feb 11 14:59:32 2019
@@ -1,5 +1,5 @@
 
-/*	$NetBSD: trap.c,v 1.297 2019/02/03 03:19:26 mrg Exp $	*/
+/*	$NetBSD: trap.c,v 1.298 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2005, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -69,7 +69,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.297 2019/02/03 03:19:26 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.298 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -129,7 +129,7 @@ dtrace_doubletrap_func_t	dtrace_doubletr
 void trap(struct trapframe *);
 void trap_tss(struct i386tss *, int, int);
 void trap_return_fault_return(struct trapframe *) __dead;
-#ifndef XEN
+#ifndef XENPV
 int ss_shadow(struct trapframe *tf);
 #endif
 
@@ -240,7 +240,7 @@ trap_print(const struct trapframe *frame
 	    l, l->l_proc->p_pid, l->l_lid, KSTACK_LOWEST_ADDR(l));
 }
 
-#ifndef XEN
+#ifndef XENPV
 int
 ss_shadow(struct trapframe *tf)
 {
@@ -678,7 +678,7 @@ faultcommon:
 				 * the copy functions, and so visible
 				 * to cpu_kpreempt_exit().
 				 */
-#ifndef XEN
+#ifndef XENPV
 				x86_disable_intr();
 #endif
 				l->l_nopreempt--;
@@ -686,7 +686,7 @@ faultcommon:
 				    pfail) {
 					return;
 				}
-#ifndef XEN
+#ifndef XENPV
 				x86_enable_intr();
 #endif
 				/*

Index: src/sys/arch/i386/i386/vector.S
diff -u src/sys/arch/i386/i386/vector.S:1.79 src/sys/arch/i386/i386/vector.S:1.80
--- src/sys/arch/i386/i386/vector.S:1.79	Tue Dec 25 06:50:11 2018
+++ src/sys/arch/i386/i386/vector.S	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vector.S,v 1.79 2018/12/25 06:50:11 cherry Exp $	*/
+/*	$NetBSD: vector.S,v 1.80 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright 2002 (c) Wasabi Systems, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.79 2018/12/25 06:50:11 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.80 2019/02/11 14:59:32 cherry Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -141,7 +141,7 @@ dtrace_invop_calltrap_addr:
 	.text
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 #if NLAPIC > 0
 #ifdef MULTIPROCESSOR
 /*
@@ -884,7 +884,7 @@ LABEL(x2apic_level_stubs)
 	.long _C_LABEL(Xresume_x2apic_level31)
 END(x2apic_level_stubs)
 #endif
-#endif /* XEN */
+#endif /* XENPV */
 
 #if defined(XEN)
 #define voidop(num)

Index: src/sys/arch/i386/include/cpu.h
diff -u src/sys/arch/i386/include/cpu.h:1.180 src/sys/arch/i386/include/cpu.h:1.181
--- src/sys/arch/i386/include/cpu.h:1.180	Sun Nov 18 23:50:48 2018
+++ src/sys/arch/i386/include/cpu.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.180 2018/11/18 23:50:48 cherry Exp $	*/
+/*	$NetBSD: cpu.h,v 1.181 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -81,13 +81,13 @@ cpu_set_curpri(int pri)
 }
 #endif
 
-#ifdef XEN
+#ifdef XENPV
 #define	CLKF_USERMODE(frame)	(curcpu()->ci_xen_clockf_usermode)
 #define CLKF_PC(frame)		(curcpu()->ci_xen_clockf_pc)
-#else /* XEN */
+#else /* XENPV */
 #define	CLKF_USERMODE(frame)	USERMODE((frame)->cf_if.if_cs)
 #define	CLKF_PC(frame)		((frame)->cf_if.if_eip)
-#endif /* XEN */
+#endif /* XENPV */
 #define	CLKF_INTR(frame)	(curcpu()->ci_idepth > 0)
 #define	LWP_PC(l)		((l)->l_md.md_regs->tf_eip)
 

Index: src/sys/arch/i386/include/frame.h
diff -u src/sys/arch/i386/include/frame.h:1.38 src/sys/arch/i386/include/frame.h:1.39
--- src/sys/arch/i386/include/frame.h:1.38	Mon Nov 19 10:05:09 2018
+++ src/sys/arch/i386/include/frame.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: frame.h,v 1.38 2018/11/19 10:05:09 kre Exp $	*/
+/*	$NetBSD: frame.h,v 1.39 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -129,7 +129,7 @@ struct intrframe {
 	int	if_ss;
 };
 
-#ifdef XEN
+#ifdef XENPV
 /*
  * need arch independant way to access ip and cs from intrframe
  */

Index: src/sys/arch/i386/include/frameasm.h
diff -u src/sys/arch/i386/include/frameasm.h:1.26 src/sys/arch/i386/include/frameasm.h:1.27
--- src/sys/arch/i386/include/frameasm.h:1.26	Sun Jun 17 15:46:39 2018
+++ src/sys/arch/i386/include/frameasm.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: frameasm.h,v 1.26 2018/06/17 15:46:39 maxv Exp $	*/
+/*	$NetBSD: frameasm.h,v 1.27 2019/02/11 14:59:32 cherry Exp $	*/
 
 #ifndef _I386_FRAMEASM_H_
 #define _I386_FRAMEASM_H_
@@ -8,7 +8,7 @@
 #include "opt_xen.h"
 #endif
 
-#if !defined(XEN)
+#if !defined(XENPV)
 #define CLI(reg)	cli
 #define STI(reg)	sti
 #else

Index: src/sys/arch/i386/include/pmap.h
diff -u src/sys/arch/i386/include/pmap.h:1.121 src/sys/arch/i386/include/pmap.h:1.122
--- src/sys/arch/i386/include/pmap.h:1.121	Mon Nov 19 20:44:51 2018
+++ src/sys/arch/i386/include/pmap.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.121 2018/11/19 20:44:51 maxv Exp $	*/
+/*	$NetBSD: pmap.h,v 1.122 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -77,10 +77,10 @@
 #endif
 
 #include <uvm/uvm_object.h>
-#ifdef XEN
+#ifdef XENPV
 #include <xen/xenfunc.h>
 #include <xen/xenpmap.h>
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * see pte.h for a description of i386 MMU terminology and hardware
@@ -256,15 +256,15 @@
 #define NKL2_START_ENTRIES	0	/* XXX computed on runtime */
 #define NKL1_START_ENTRIES	0	/* XXX unused */
 
-#ifndef XEN
+#ifndef XENPV
 #define NTOPLEVEL_PDES		(PAGE_SIZE * PDP_SIZE / (sizeof (pd_entry_t)))
-#else	/* !XEN */
+#else	/* !XENPV */
 #ifdef  PAE
 #define NTOPLEVEL_PDES		1964	/* 1964-2047 reserved by Xen */
 #else	/* PAE */
 #define NTOPLEVEL_PDES		1008	/* 1008-1023 reserved by Xen */
 #endif	/* PAE */
-#endif  /* !XEN */
+#endif  /* !XENPV */
 #define NPDPG			(PAGE_SIZE / sizeof (pd_entry_t))
 
 #define PTP_MASK_INITIALIZER	{ L1_MASK, L2_MASK }
@@ -287,7 +287,7 @@
 
 #include <x86/pmap.h>
 
-#ifndef XEN
+#ifndef XENPV
 #define pmap_pa2pte(a)			(a)
 #define pmap_pte2pa(a)			((a) & PG_FRAME)
 #define pmap_pte_set(p, n)		do { *(p) = (n); } while (0)
@@ -311,7 +311,7 @@
     atomic_and_ulong((volatile unsigned long *)p, ~(b))
 #endif /* PAE */
 
-#else /* XEN */
+#else /* XENPV */
 extern kmutex_t pte_lock;
 
 static __inline pt_entry_t

Index: src/sys/arch/i386/include/segments.h
diff -u src/sys/arch/i386/include/segments.h:1.67 src/sys/arch/i386/include/segments.h:1.68
--- src/sys/arch/i386/include/segments.h:1.67	Sun Sep 23 15:28:49 2018
+++ src/sys/arch/i386/include/segments.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: segments.h,v 1.67 2018/09/23 15:28:49 cherry Exp $	*/
+/*	$NetBSD: segments.h,v 1.68 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -89,19 +89,19 @@
  */
 
 #define ISPL(s)		((s) & SEL_RPL)	/* what is the priority level of a selector */
-#ifndef XEN
+#ifndef XENPV
 #define SEL_KPL		0		/* kernel privilege level */
 #else
 #define SEL_XEN		0		/* Xen privilege level */
 #define SEL_KPL		1		/* kernel privilege level */
-#endif /* XEN */
+#endif /* XENPV */
 #define SEL_UPL		3		/* user privilege level */
 #define SEL_RPL		3		/* requester's privilege level mask */
-#ifdef XEN
+#ifdef XENPV
 #define CHK_UPL		2		/* user privilege level mask */
 #else
 #define CHK_UPL		SEL_RPL
-#endif /* XEN */
+#endif /* XENPV */
 #define ISLDT(s)	((s) & SEL_LDT)	/* is it local or global */
 #define SEL_LDT		4		/* local descriptor table */
 
@@ -191,11 +191,11 @@ struct region_descriptor {
 #endif
 
 #ifdef _KERNEL
-#ifdef XEN
+#ifdef XENPV
 typedef struct trap_info idt_descriptor_t;
 #else
 typedef struct gate_descriptor idt_descriptor_t; 
-#endif /* XEN */
+#endif /* XENPV */
 extern idt_descriptor_t *idt;
 extern union descriptor *gdtstore, *ldtstore;
 

Index: src/sys/arch/i386/include/vmparam.h
diff -u src/sys/arch/i386/include/vmparam.h:1.85 src/sys/arch/i386/include/vmparam.h:1.86
--- src/sys/arch/i386/include/vmparam.h:1.85	Fri Jun 23 21:28:38 2017
+++ src/sys/arch/i386/include/vmparam.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vmparam.h,v 1.85 2017/06/23 21:28:38 joerg Exp $	*/
+/*	$NetBSD: vmparam.h,v 1.86 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -122,7 +122,7 @@
 
 #define VM_PHYSSEG_STRAT	VM_PSTRAT_BIGFIRST
 
-#ifdef XEN
+#ifdef XENPV
 #define	VM_PHYSSEG_MAX		1
 #define	VM_NFREELIST		1
 #else
@@ -131,7 +131,7 @@
 #define	VM_FREELIST_FIRST16	3
 #define	VM_FREELIST_FIRST1G	2
 #define	VM_FREELIST_FIRST4G	1
-#endif /* XEN */
+#endif /* XENPV */
 #define	VM_FREELIST_DEFAULT	0
 
 #endif /* _I386_VMPARAM_H_ */

Index: src/sys/arch/x86/acpi/acpi_machdep.c
diff -u src/sys/arch/x86/acpi/acpi_machdep.c:1.21 src/sys/arch/x86/acpi/acpi_machdep.c:1.22
--- src/sys/arch/x86/acpi/acpi_machdep.c:1.21	Thu Nov 22 15:06:00 2018
+++ src/sys/arch/x86/acpi/acpi_machdep.c	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_machdep.c,v 1.21 2018/11/22 15:06:00 jmcneill Exp $ */
+/* $NetBSD: acpi_machdep.c,v 1.22 2019/02/11 14:59:32 cherry Exp $ */
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.21 2018/11/22 15:06:00 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.22 2019/02/11 14:59:32 cherry Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -100,7 +100,7 @@ acpi_md_OsGetRootPointer(void)
 	ACPI_PHYSICAL_ADDRESS PhysicalAddress;
 	ACPI_STATUS Status;
 
-#ifndef XEN
+#ifndef XENPV
 	/* If EFI is available, attempt to use it to locate the ACPI table. */
 	if (efi_probe()) {
 		PhysicalAddress = efi_getcfgtblpa(&EFI_UUID_ACPI20);
@@ -385,7 +385,7 @@ acpi_md_mcfg_validate(uint64_t addr, int
 	uint32_t type;
 	int i, n;
 
-#ifndef XEN
+#ifndef XENPV
 	if (lookup_bootinfo(BTINFO_EFIMEMMAP) != NULL)
 		bim = efi_get_e820memmap();
 	else
@@ -482,14 +482,14 @@ acpi_md_callback(struct acpi_softc *sc)
 #endif
 	mpacpi_find_interrupts(sc);
 
-#ifndef XEN
+#ifndef XENPV
 	acpi_md_sleep_init();
 #endif
 
 	acpimcfg_init(x86_bus_space_mem, &acpi_md_mcfg_ops);
 }
 
-#ifndef XEN
+#ifndef XENPV
 void
 device_acpi_register(device_t dev, void *aux)
 {

Index: src/sys/arch/x86/include/cpu.h
diff -u src/sys/arch/x86/include/cpu.h:1.102 src/sys/arch/x86/include/cpu.h:1.103
--- src/sys/arch/x86/include/cpu.h:1.102	Sat Feb  2 12:32:55 2019
+++ src/sys/arch/x86/include/cpu.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.102 2019/02/02 12:32:55 cherry Exp $	*/
+/*	$NetBSD: cpu.h,v 1.103 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1990 The Regents of the University of California.
@@ -110,7 +110,9 @@ struct cpu_info {
 	struct cpu_data ci_data;	/* MI per-cpu data */
 	device_t ci_dev;		/* pointer to our device */
 	struct cpu_info *ci_self;	/* self-pointer */
+#ifdef XEN
 	volatile struct vcpu_info *ci_vcpu; /* for XEN */
+#endif
 
 	/*
 	 * Will be accessed by other CPUs.
@@ -250,7 +252,11 @@ struct cpu_info {
 	vaddr_t		ci_svs_utls;
 #endif
 
-#if defined(XEN)
+#ifdef XEN
+	u_long ci_evtmask[NR_EVENT_CHANNELS]; /* events allowed on this CPU */
+	struct evcnt ci_ipi_events[XEN_NIPIS];
+	evtchn_port_t ci_ipi_evtchn;
+#if defined(XENPV)
 #if defined(PAE) || defined(__x86_64__)
 	/* Currently active user PGD (can't use rcr3() with Xen) */
 	pd_entry_t *	ci_kpm_pdir;	/* per-cpu PMD (va) */
@@ -260,13 +266,10 @@ struct cpu_info {
 
 #if defined(__x86_64__)
 	/* per-cpu version of normal_pdes */
-	pd_entry_t *	ci_normal_pdes[3]; /* Ok to hardcode. only for x86_64 && XEN */
+	pd_entry_t *	ci_normal_pdes[3]; /* Ok to hardcode. only for x86_64 && XENPV */
 	paddr_t		ci_xen_current_user_pgd;
 #endif	/* defined(__x86_64__) */
 
-	u_long ci_evtmask[NR_EVENT_CHANNELS]; /* events allowed on this CPU */
-	struct evcnt ci_ipi_events[XEN_NIPIS];
-	evtchn_port_t ci_ipi_evtchn;
 	size_t		ci_xpq_idx;
 	/* Xen raw system time at which we last ran hardclock.  */
 	uint64_t	ci_xen_hardclock_systime_ns;
@@ -301,9 +304,10 @@ struct cpu_info {
 	struct evcnt	ci_xen_raw_systime_backwards_evcnt;
 	struct evcnt	ci_xen_systime_backwards_hardclock_evcnt;
 	struct evcnt	ci_xen_missed_hardclock_evcnt;
-#else   /* defined(XEN) */
+#endif /* XENPV */
+#else   /* XEN */
 	struct evcnt ci_ipi_events[X86_NIPI];
-#endif	/* defined(XEN) */
+#endif	/* XEN */
 
 };
 
@@ -491,14 +495,14 @@ void	x86_cpu_topology(struct cpu_info *)
 /* locore.s */
 struct region_descriptor;
 void	lgdt(struct region_descriptor *);
-#ifdef XEN
+#ifdef XENPV
 void	lgdt_finish(void);
 #endif
 
 struct pcb;
 void	savectx(struct pcb *);
 void	lwp_trampoline(void);
-#ifdef XEN
+#ifdef XENPV
 void	startrtclock(void);
 void	xen_delay(unsigned int);
 void	xen_initclocks(void);

Index: src/sys/arch/x86/include/cpuvar.h
diff -u src/sys/arch/x86/include/cpuvar.h:1.50 src/sys/arch/x86/include/cpuvar.h:1.51
--- src/sys/arch/x86/include/cpuvar.h:1.50	Tue May 23 08:54:39 2017
+++ src/sys/arch/x86/include/cpuvar.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/* 	$NetBSD: cpuvar.h,v 1.50 2017/05/23 08:54:39 nonaka Exp $ */
+/* 	$NetBSD: cpuvar.h,v 1.51 2019/02/11 14:59:32 cherry Exp $ */
 
 /*-
  * Copyright (c) 2000, 2007 The NetBSD Foundation, Inc.
@@ -68,11 +68,11 @@
 
 struct cpu_info;
 struct cpu_functions {
-#ifndef XEN
+#ifndef XENPV
 	int (*start)(struct cpu_info *, paddr_t);
-#else /* XEN */
+#else /* XENPV */
    	int (*start)(struct cpu_info *, vaddr_t);
-#endif /* XEN */
+#endif /* XENPV */
 	int (*stop)(struct cpu_info *);
 	void (*cleanup)(struct cpu_info *);
 };
@@ -115,7 +115,7 @@ void cpu_init_first(void);
 void x86_cpu_idle_init(void);
 void x86_cpu_idle_halt(void);
 void x86_cpu_idle_mwait(void);
-#ifdef XEN
+#ifdef XENPV
 void x86_cpu_idle_xen(void);
 #endif
 

Index: src/sys/arch/x86/include/intr.h
diff -u src/sys/arch/x86/include/intr.h:1.57 src/sys/arch/x86/include/intr.h:1.58
--- src/sys/arch/x86/include/intr.h:1.57	Thu Dec 13 16:16:51 2018
+++ src/sys/arch/x86/include/intr.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.h,v 1.57 2018/12/13 16:16:51 cherry Exp $	*/
+/*	$NetBSD: intr.h,v 1.58 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -71,7 +71,7 @@
  */
 
 struct intrstub {
-#if !defined(XEN)
+#if !defined(XENPV)
 	void *ist_entry;
 #endif
 	void *ist_recurse;
@@ -119,7 +119,7 @@ struct intrsource {
  */
 
 struct intrhand {
-#if defined(XEN)
+#if defined(XENPV)
 	/*
 	 * Note: This is transitional and will go away.
 	 *
@@ -232,7 +232,7 @@ int x86_send_ipi(struct cpu_info *, int)
 void x86_broadcast_ipi(int);
 void x86_ipi_handler(void);
 
-#ifndef XEN
+#ifndef XENPV
 extern void (* const ipifunc[X86_NIPI])(struct cpu_info *);
 #endif
 

Index: src/sys/arch/x86/include/intrdefs.h
diff -u src/sys/arch/x86/include/intrdefs.h:1.20 src/sys/arch/x86/include/intrdefs.h:1.21
--- src/sys/arch/x86/include/intrdefs.h:1.20	Mon May 19 22:47:54 2014
+++ src/sys/arch/x86/include/intrdefs.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intrdefs.h,v 1.20 2014/05/19 22:47:54 rmind Exp $	*/
+/*	$NetBSD: intrdefs.h,v 1.21 2019/02/11 14:59:32 cherry Exp $	*/
 
 #ifndef _X86_INTRDEFS_H_
 #define _X86_INTRDEFS_H_
@@ -56,7 +56,7 @@
 #define IDT_INTR_LOW	(0x20 + NUM_LEGACY_IRQS)
 #define IDT_INTR_HIGH	0xef
 
-#ifndef XEN
+#ifndef XENPV
 
 #define X86_IPI_HALT			0x00000001
 #define X86_IPI_MICROSET		0x00000002
@@ -74,7 +74,7 @@
 			 "FPU synch IPI", "MTRR update IPI", \
 			 "GDT update IPI", "xcall IPI", \
 			 "ACPI CPU sleep IPI", "kpreempt IPI" }
-#endif /* XEN */
+#endif /* XENPV */
 
 #define IREENT_MAGIC	0x18041969
 

Index: src/sys/arch/x86/include/pmap.h
diff -u src/sys/arch/x86/include/pmap.h:1.95 src/sys/arch/x86/include/pmap.h:1.96
--- src/sys/arch/x86/include/pmap.h:1.95	Fri Feb  1 11:35:13 2019
+++ src/sys/arch/x86/include/pmap.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.95 2019/02/01 11:35:13 maxv Exp $	*/
+/*	$NetBSD: pmap.h,v 1.96 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -528,7 +528,7 @@ vaddr_t	pmap_map(vaddr_t, paddr_t, paddr
 void	pmap_cpu_init_late(struct cpu_info *);
 bool	sse2_idlezero_page(void *);
 
-#ifdef XEN
+#ifdef XENPV
 #include <sys/bitops.h>
 
 #define XPTE_MASK	L1_FRAME
@@ -559,7 +559,7 @@ xpmap_ptetomach(pt_entry_t *pte)
 
 paddr_t	vtomach(vaddr_t);
 #define vtomfn(va) (vtomach(va) >> PAGE_SHIFT)
-#endif	/* XEN */
+#endif	/* XENPV */
 
 /* pmap functions with machine addresses */
 void	pmap_kenter_ma(vaddr_t, paddr_t, vm_prot_t, u_int);

Index: src/sys/arch/x86/include/specialreg.h
diff -u src/sys/arch/x86/include/specialreg.h:1.139 src/sys/arch/x86/include/specialreg.h:1.140
--- src/sys/arch/x86/include/specialreg.h:1.139	Fri Feb  8 04:06:00 2019
+++ src/sys/arch/x86/include/specialreg.h	Mon Feb 11 14:59:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: specialreg.h,v 1.139 2019/02/08 04:06:00 msaitoh Exp $	*/
+/*	$NetBSD: specialreg.h,v 1.140 2019/02/11 14:59:32 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1991 The Regents of the University of California.
@@ -167,12 +167,12 @@
 	"\35" "HTT"	"\36" "TM"	"\37" "IA64"	"\40" "SBF"
 
 /* Blacklists of CPUID flags - used to mask certain features */
-#ifdef XEN
+#ifdef XENPV
 /* Not on Xen */
 #define CPUID_FEAT_BLACKLIST	 (CPUID_PGE|CPUID_PSE|CPUID_MTRR)
 #else
 #define CPUID_FEAT_BLACKLIST	 0
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * CPUID "features" bits in Fn00000001 %ecx

Index: src/sys/arch/x86/isa/isa_machdep.c
diff -u src/sys/arch/x86/isa/isa_machdep.c:1.43 src/sys/arch/x86/isa/isa_machdep.c:1.44
--- src/sys/arch/x86/isa/isa_machdep.c:1.43	Tue Dec 25 06:50:12 2018
+++ src/sys/arch/x86/isa/isa_machdep.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: isa_machdep.c,v 1.43 2018/12/25 06:50:12 cherry Exp $	*/
+/*	$NetBSD: isa_machdep.c,v 1.44 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.43 2018/12/25 06:50:12 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.44 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -142,7 +142,7 @@ isa_intr_alloc(isa_chipset_tag_t ic, int
 	for (i = 0; i < NUM_LEGACY_IRQS; i++) {
 		if (LEGAL_IRQ(i) == 0 || (mask & (1<<i)) == 0)
 			continue;
-#if !defined(XEN)
+#if !defined(XENPV)
 		isp = ci->ci_isources[i];
 #else
 		isp = ci->ci_xsources[i];
@@ -248,7 +248,7 @@ isa_intr_establish_xname(isa_chipset_tag
 void
 isa_intr_disestablish(isa_chipset_tag_t ic, void *arg)
 {
-#if !defined(XEN)
+#if !defined(XENPV)
 	struct intrhand *ih = arg;
 
 	if (!LEGAL_IRQ(ih->ih_pin))

Index: src/sys/arch/x86/pci/pci_intr_machdep.c
diff -u src/sys/arch/x86/pci/pci_intr_machdep.c:1.48 src/sys/arch/x86/pci/pci_intr_machdep.c:1.49
--- src/sys/arch/x86/pci/pci_intr_machdep.c:1.48	Sun Dec  2 08:19:44 2018
+++ src/sys/arch/x86/pci/pci_intr_machdep.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_intr_machdep.c,v 1.48 2018/12/02 08:19:44 cherry Exp $	*/
+/*	$NetBSD: pci_intr_machdep.c,v 1.49 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998, 2009 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_intr_machdep.c,v 1.48 2018/12/02 08:19:44 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_intr_machdep.c,v 1.49 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -399,7 +399,7 @@ static const char *
 x86_pci_intx_create_intrid(pci_chipset_tag_t pc, pci_intr_handle_t ih, char *buf,
     size_t len)
 {
-#if !defined(XEN)
+#if !defined(XENPV)
 	int pin, irq;
 	struct pic *pic;
 
@@ -417,7 +417,7 @@ x86_pci_intx_create_intrid(pci_chipset_t
 	return intr_create_intrid(irq, pic, pin, buf, len);
 #else
 	return pci_intr_string(pc, ih, buf, len);
-#endif /* !XEN */
+#endif /* !XENPV */
 }
 
 static void

Index: src/sys/arch/x86/pci/pci_machdep.c
diff -u src/sys/arch/x86/pci/pci_machdep.c:1.83 src/sys/arch/x86/pci/pci_machdep.c:1.84
--- src/sys/arch/x86/pci/pci_machdep.c:1.83	Tue Jul 10 06:44:49 2018
+++ src/sys/arch/x86/pci/pci_machdep.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_machdep.c,v 1.83 2018/07/10 06:44:49 maxv Exp $	*/
+/*	$NetBSD: pci_machdep.c,v 1.84 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.83 2018/07/10 06:44:49 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.84 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -150,7 +150,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_machdep.
 #include <dev/pci/puccn.h>
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 #include <x86/efi.h>
 #endif
 
@@ -1095,7 +1095,7 @@ device_pci_register(device_t dev, void *
 			if (bin->addr.tag == ((b << 8) | (d << 3) | f))
 				return dev;
 
-#ifndef XEN
+#ifndef XENPV
 			/*
 			 * efiboot reports parent ppb bus/device/function.
 			 */

Index: src/sys/arch/x86/pci/pcib.c
diff -u src/sys/arch/x86/pci/pcib.c:1.16 src/sys/arch/x86/pci/pcib.c:1.17
--- src/sys/arch/x86/pci/pcib.c:1.16	Sun Mar  4 13:24:17 2018
+++ src/sys/arch/x86/pci/pcib.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pcib.c,v 1.16 2018/03/04 13:24:17 jdolecek Exp $	*/
+/*	$NetBSD: pcib.c,v 1.17 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcib.c,v 1.16 2018/03/04 13:24:17 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcib.c,v 1.17 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -160,7 +160,7 @@ pcibmatch(device_t parent, cfdata_t matc
 	case PCI_VENDOR_CYRIX:
 		switch (PCI_PRODUCT(pa->pa_id)) {
 		case PCI_PRODUCT_CYRIX_CX5530_PCIB:
-#if !defined(XEN)
+#if !defined(XENPV)
 			{
 				extern int clock_broken_latch;
 

Index: src/sys/arch/x86/x86/bios32.c
diff -u src/sys/arch/x86/x86/bios32.c:1.2 src/sys/arch/x86/x86/bios32.c:1.3
--- src/sys/arch/x86/x86/bios32.c:1.2	Tue Aug 15 06:37:50 2017
+++ src/sys/arch/x86/x86/bios32.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: bios32.c,v 1.2 2017/08/15 06:37:50 maxv Exp $	*/
+/*	$NetBSD: bios32.c,v 1.3 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -86,7 +86,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bios32.c,v 1.2 2017/08/15 06:37:50 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bios32.c,v 1.3 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -165,7 +165,7 @@ bios32_init(void)
 #endif
 
 	/* see if we have SMBIOS extensions */
-#ifndef XEN
+#ifndef XENPV
 	if (efi_probe()) {
 		p = efi_getcfgtbl(&EFI_UUID_SMBIOS3);
 		if (p != NULL && smbios3_check_header(p)) {
@@ -289,7 +289,7 @@ smbios2_map_kva(const uint8_t *p)
 	smbios_entry.count = sh->count;
 
 	for (; pa < end; pa+= NBPG, eva+= NBPG)
-#ifdef XEN
+#ifdef XENPV
 		pmap_kenter_ma(eva, pa, VM_PROT_READ, 0);
 #else
 		pmap_kenter_pa(eva, pa, VM_PROT_READ, 0);
@@ -343,7 +343,7 @@ smbios3_map_kva(const uint8_t *p)
 	smbios_entry.count = UINT16_MAX;
 
 	for (; pa < end; pa += NBPG, eva += NBPG)
-#ifdef XEN
+#ifdef XENPV
 		pmap_kenter_ma(eva, pa, VM_PROT_READ, 0);
 #else
 		pmap_kenter_pa(eva, pa, VM_PROT_READ, 0);

Index: src/sys/arch/x86/x86/bus_space.c
diff -u src/sys/arch/x86/x86/bus_space.c:1.40 src/sys/arch/x86/x86/bus_space.c:1.41
--- src/sys/arch/x86/x86/bus_space.c:1.40	Thu Jun  1 02:45:08 2017
+++ src/sys/arch/x86/x86/bus_space.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_space.c,v 1.40 2017/06/01 02:45:08 chs Exp $	*/
+/*	$NetBSD: bus_space.c,v 1.41 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.40 2017/06/01 02:45:08 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.41 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -133,7 +133,7 @@ x86_bus_space_init(void)
 	    (void *)iomem_ex_storage, sizeof(iomem_ex_storage),
 	    EX_NOCOALESCE|EX_NOWAIT);
 
-#ifdef XEN
+#ifdef XENPV
 	/* We are privileged guest os - should have IO privileges. */
 	if (xendomain_is_privileged()) {
 		struct physdev_op physop;
@@ -143,7 +143,7 @@ x86_bus_space_init(void)
 			panic("Unable to obtain IOPL, "
 			    "despite being SIF_PRIVILEGED");
 	}
-#endif	/* XEN */
+#endif	/* XENPV */
 }
 
 void
@@ -209,12 +209,12 @@ bus_space_reservation_map(bus_space_tag_
 		return 0;
 	}
 
-#ifndef XEN
+#ifndef XENPV
 	if (bpa >= IOM_BEGIN && (bpa + size) != 0 && (bpa + size) <= IOM_END) {
 		*bshp = (bus_space_handle_t)ISA_HOLE_VADDR(bpa);
 		return 0;
 	}
-#endif	/* !XEN */
+#endif	/* !XENPV */
 
 	/*
 	 * For memory space, map the bus physical address to
@@ -445,11 +445,11 @@ x86_mem_add_mapping(bus_addr_t bpa, bus_
 		panic("x86_mem_add_mapping: overflow");
 #endif
 
-#ifdef XEN
+#ifdef XENPV
 	if (bpa >= IOM_BEGIN && (bpa + size) != 0 && (bpa + size) <= IOM_END) {
 		sva = (vaddr_t)ISA_HOLE_VADDR(pa);
 	} else
-#endif	/* XEN */
+#endif	/* XENPV */
 	{
 		sva = uvm_km_alloc(kernel_map, endpa - pa, 0,
 		    UVM_KMF_VAONLY | UVM_KMF_NOWAIT);

Index: src/sys/arch/x86/x86/cpu_ucode.c
diff -u src/sys/arch/x86/x86/cpu_ucode.c:1.11 src/sys/arch/x86/x86/cpu_ucode.c:1.12
--- src/sys/arch/x86/x86/cpu_ucode.c:1.11	Sat Feb  2 12:32:55 2019
+++ src/sys/arch/x86/x86/cpu_ucode.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu_ucode.c,v 1.11 2019/02/02 12:32:55 cherry Exp $ */
+/* $NetBSD: cpu_ucode.c,v 1.12 2019/02/11 14:59:33 cherry Exp $ */
 /*
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu_ucode.c,v 1.11 2019/02/02 12:32:55 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu_ucode.c,v 1.12 2019/02/11 14:59:33 cherry Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_cpu_ucode.h"
@@ -99,7 +99,7 @@ cpu_ucode_md_open(firmware_handle_t *fwh
 	}
 }
 
-#ifndef XEN
+#ifndef XENPV
 int
 cpu_ucode_apply(const struct cpu_ucode *data)
 {

Index: src/sys/arch/x86/x86/fpu.c
diff -u src/sys/arch/x86/x86/fpu.c:1.49 src/sys/arch/x86/x86/fpu.c:1.50
--- src/sys/arch/x86/x86/fpu.c:1.49	Sun Jan 20 16:55:21 2019
+++ src/sys/arch/x86/x86/fpu.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: fpu.c,v 1.49 2019/01/20 16:55:21 maxv Exp $	*/
+/*	$NetBSD: fpu.c,v 1.50 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*
  * Copyright (c) 2008 The NetBSD Foundation, Inc.  All
@@ -96,7 +96,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.49 2019/01/20 16:55:21 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.50 2019/02/11 14:59:33 cherry Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -121,7 +121,7 @@ __KERNEL_RCSID(0, "$NetBSD: fpu.c,v 1.49
 #include <x86/cpu.h>
 #include <x86/fpu.h>
 
-#ifdef XEN
+#ifdef XENPV
 #define clts() HYPERVISOR_fpu_taskswitch(0)
 #define stts() HYPERVISOR_fpu_taskswitch(1)
 #endif
@@ -152,7 +152,7 @@ fpuinit(struct cpu_info *ci)
 void
 fpuinit_mxcsr_mask(void)
 {
-#ifndef XEN
+#ifndef XENPV
 	union savefpu fpusave __aligned(16);
 	u_long psl;
 
@@ -569,7 +569,7 @@ fpusave_lwp(struct lwp *l, bool save)
 			break;
 		}
 		splx(s);
-#ifdef XEN
+#ifdef XENPV
 		if (xen_send_ipi(oci, XEN_IPI_SYNCH_FPU) != 0) {
 			panic("xen_send_ipi(%s, XEN_IPI_SYNCH_FPU) failed.",
 			    cpu_name(oci));

Index: src/sys/arch/x86/x86/i8259.c
diff -u src/sys/arch/x86/x86/i8259.c:1.22 src/sys/arch/x86/x86/i8259.c:1.23
--- src/sys/arch/x86/x86/i8259.c:1.22	Tue Dec 25 06:50:12 2018
+++ src/sys/arch/x86/x86/i8259.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: i8259.c,v 1.22 2018/12/25 06:50:12 cherry Exp $	*/
+/*	$NetBSD: i8259.c,v 1.23 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*
  * Copyright 2002 (c) Wasabi Systems, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i8259.c,v 1.22 2018/12/25 06:50:12 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i8259.c,v 1.23 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/param.h> 
 #include <sys/systm.h>
@@ -233,7 +233,7 @@ i8259_reinit_irqs(void)
 {
 	int irqs, irq;
 	struct cpu_info *ci = &cpu_info_primary;
-#if !defined(XEN)
+#if !defined(XENPV)
 	const size_t array_count = __arraycount(ci->ci_isources);
 #else
 	const size_t array_count = __arraycount(ci->ci_xsources);
@@ -243,7 +243,7 @@ i8259_reinit_irqs(void)
 
 	irqs = 0;
 	for (irq = 0; irq < array_len; irq++)
-#if !defined(XEN)		
+#if !defined(XENPV)		
 		if (ci->ci_isources[irq] != NULL)
 #else
 		if (ci->ci_xsources[irq] != NULL)

Index: src/sys/arch/x86/x86/identcpu.c
diff -u src/sys/arch/x86/x86/identcpu.c:1.86 src/sys/arch/x86/x86/identcpu.c:1.87
--- src/sys/arch/x86/x86/identcpu.c:1.86	Sun Jan 13 12:16:58 2019
+++ src/sys/arch/x86/x86/identcpu.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: identcpu.c,v 1.86 2019/01/13 12:16:58 maxv Exp $	*/
+/*	$NetBSD: identcpu.c,v 1.87 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: identcpu.c,v 1.86 2019/01/13 12:16:58 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: identcpu.c,v 1.87 2019/02/11 14:59:33 cherry Exp $");
 
 #include "opt_xen.h"
 
@@ -730,7 +730,7 @@ cpu_probe_vortex86(struct cpu_info *ci)
 static void
 cpu_probe_old_fpu(struct cpu_info *ci)
 {
-#if defined(__i386__) && !defined(XEN)
+#if defined(__i386__) && !defined(XENPV)
 
 	clts();
 	fninit();
@@ -744,7 +744,7 @@ cpu_probe_old_fpu(struct cpu_info *ci)
 #endif
 }
 
-#ifndef XEN
+#ifndef XENPV
 static void
 cpu_probe_fpu_leak(struct cpu_info *ci)
 {
@@ -793,7 +793,7 @@ cpu_probe_fpu(struct cpu_info *ci)
 {
 	u_int descs[4];
 
-#ifndef XEN
+#ifndef XENPV
 	cpu_probe_fpu_leak(ci);
 #endif
 
@@ -831,7 +831,7 @@ cpu_probe_fpu(struct cpu_info *ci)
 	if ((ci->ci_feat_val[1] & CPUID2_XSAVE) == 0)
 		return;
 
-#ifdef XEN
+#ifdef XENPV
 	/*
 	 * Xen kernel can disable XSAVE via "no-xsave" option, in that case
 	 * XSAVE instructions like xrstor become privileged and trigger
@@ -1040,7 +1040,7 @@ cpu_identify(struct cpu_info *ci)
 		aprint_error("WARNING: BUGGY CYRIX CACHE\n");
 	}
 
-#if !defined(XEN) || defined(DOM0OPS)       /* on Xen rdmsr is for Dom0 only */
+#if !defined(XENPV) || defined(DOM0OPS)       /* on Xen PV rdmsr is for Dom0 only */
 	if (cpu_vendor == CPUVENDOR_AMD     /* check enablement of an */
 	    && device_unit(ci->ci_dev) == 0 /* AMD feature only once */
 	    && ((cpu_feature[3] & CPUID_SVM) == CPUID_SVM)) {

Index: src/sys/arch/x86/x86/idt.c
diff -u src/sys/arch/x86/x86/idt.c:1.9 src/sys/arch/x86/x86/idt.c:1.10
--- src/sys/arch/x86/x86/idt.c:1.9	Thu Oct 18 04:14:07 2018
+++ src/sys/arch/x86/x86/idt.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: idt.c,v 1.9 2018/10/18 04:14:07 cherry Exp $	*/
+/*	$NetBSD: idt.c,v 1.10 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2000, 2009 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: idt.c,v 1.9 2018/10/18 04:14:07 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: idt.c,v 1.10 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -86,7 +86,7 @@ idt_descriptor_t *idt; 
 static char idt_allocmap[NIDT];
 
 /* Normalise across XEN PV and native */
-#if defined(XEN)
+#if defined(XENPV)
 
 void
 set_idtgate(struct trap_info *xen_idd, void *function, int ist,
@@ -146,7 +146,7 @@ unset_idtgate(struct trap_info *xen_idd)
 	pmap_changeprot_local(xen_idt_vaddr, VM_PROT_READ);
 #endif /* __x86_64 */
 }
-#else /* XEN */
+#else /* XENPV */
 void
 set_idtgate(struct gate_descriptor *idd, void *function, int ist, int type, int dpl, int sel)
 {
@@ -157,7 +157,7 @@ unset_idtgate(struct gate_descriptor *id
 {
 	unsetgate(idd);
 }
-#endif /* XEN */
+#endif /* XENPV */
 
 /*
  * Allocate an IDT vector slot within the given range.

Index: src/sys/arch/x86/x86/pmap.c
diff -u src/sys/arch/x86/x86/pmap.c:1.320 src/sys/arch/x86/x86/pmap.c:1.321
--- src/sys/arch/x86/x86/pmap.c:1.320	Sat Feb  2 12:32:55 2019
+++ src/sys/arch/x86/x86/pmap.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.320 2019/02/02 12:32:55 cherry Exp $	*/
+/*	$NetBSD: pmap.c,v 1.321 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*
  * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc.
@@ -130,7 +130,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.320 2019/02/02 12:32:55 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.321 2019/02/11 14:59:33 cherry Exp $");
 
 #include "opt_user_ldt.h"
 #include "opt_lockdebug.h"
@@ -320,7 +320,7 @@ paddr_t lowmem_rsvd __read_mostly;
 paddr_t avail_start __read_mostly; /* PA of first available physical page */
 paddr_t avail_end __read_mostly; /* PA of last available physical page */
 
-#ifdef XEN
+#ifdef XENPV
 paddr_t pmap_pa_start; /* PA of first physical page for this domain */
 paddr_t pmap_pa_end;   /* PA of last physical page for this domain */
 #endif
@@ -399,7 +399,7 @@ static bool pmap_initialized __read_most
 static vaddr_t virtual_avail __read_mostly;	/* VA of first free KVA */
 static vaddr_t virtual_end __read_mostly;	/* VA of last free KVA */
 
-#ifndef XEN
+#ifndef XENPV
 /*
  * LAPIC virtual address, and fake physical address.
  */
@@ -428,7 +428,7 @@ vaddr_t pmap_direct_end __read_mostly;
  */
 static pt_entry_t *early_zero_pte;
 static void pmap_vpage_cpualloc(struct cpu_info *);
-#ifdef XEN
+#ifdef XENPV
 char *early_zerop; /* also referenced from xen_locore() */
 #else
 static char *early_zerop;
@@ -475,10 +475,10 @@ static void pmap_init_pcpu(void);
 #ifdef __HAVE_DIRECT_MAP
 static void pmap_init_directmap(struct pmap *);
 #endif
-#if !defined(XEN)
+#if !defined(XENPV)
 static void pmap_remap_global(void);
 #endif
-#ifndef XEN
+#ifndef XENPV
 static void pmap_init_lapic(void);
 static void pmap_remap_largepages(void);
 #endif
@@ -684,7 +684,7 @@ pmap_map_ptes(struct pmap *pmap, struct 
 	*pmap2 = curpmap;
 	*ptepp = PTE_BASE;
 
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 	KASSERT(ci->ci_normal_pdes[PTP_LEVELS - 2] == L4_BASE);
 	ci->ci_normal_pdes[PTP_LEVELS - 2] = pmap->pm_pdir;
 	*pdeppp = ci->ci_normal_pdes;
@@ -711,7 +711,7 @@ pmap_unmap_ptes(struct pmap *pmap, struc
 
 	ci = curcpu();
 
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 	KASSERT(ci->ci_normal_pdes[PTP_LEVELS - 2] != L4_BASE);
 	ci->ci_normal_pdes[PTP_LEVELS - 2] = L4_BASE;
 #endif
@@ -1122,7 +1122,7 @@ pmap_bootstrap(vaddr_t kva_start)
 	 * operation of the system.
 	 */
 
-#if !defined(XEN)
+#if !defined(XENPV)
 	/*
 	 * Begin to enable global TLB entries if they are supported.
 	 * The G bit has no effect until the CR4_PGE bit is set in CR4,
@@ -1137,7 +1137,7 @@ pmap_bootstrap(vaddr_t kva_start)
 	}
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 	/*
 	 * Enable large pages if they are supported.
 	 */
@@ -1156,7 +1156,7 @@ pmap_bootstrap(vaddr_t kva_start)
 		pmap_remap_largepages();
 	}
 	pmap_init_lapic();
-#endif /* !XEN */
+#endif /* !XENPV */
 
 #ifdef __HAVE_PCPU_AREA
 	pmap_init_pcpu();
@@ -1178,7 +1178,7 @@ pmap_bootstrap(vaddr_t kva_start)
 		 * when it's called for the first time.
 		 * XXXfvdl fix this for MULTIPROCESSOR later.
 		 */
-#ifdef XEN
+#ifdef XENPV
 		/* early_zerop initialized in xen_locore() */
 #else
 		early_zerop = (void *)bootspace.spareva;
@@ -1187,7 +1187,7 @@ pmap_bootstrap(vaddr_t kva_start)
 	}
 #endif
 
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 	extern vaddr_t xen_dummy_page;
 	paddr_t xen_dummy_user_pgd;
 
@@ -1263,7 +1263,7 @@ pmap_bootstrap(vaddr_t kva_start)
 	pmap_maxkvaddr = kva;
 }
 
-#ifndef XEN
+#ifndef XENPV
 static void
 pmap_init_lapic(void)
 {
@@ -1585,7 +1585,7 @@ pmap_init_directmap(struct pmap *kpm)
 }
 #endif /* __HAVE_DIRECT_MAP */
 
-#if !defined(XEN)
+#if !defined(XENPV)
 /*
  * Remap all of the virtual pages created so far with the PG_G bit.
  */
@@ -1630,7 +1630,7 @@ pmap_remap_global(void)
 }
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 /*
  * Remap several kernel segments with large pages. We cover as many pages as we
  * can. Called only once at boot time, if the CPU supports large pages.
@@ -1700,7 +1700,7 @@ pmap_remap_largepages(void)
 		}
 	}
 }
-#endif /* !XEN */
+#endif /* !XENPV */
 
 /*
  * pmap_init: called from uvm_init, our job is to get the pmap system ready
@@ -1725,7 +1725,7 @@ pmap_init(void)
 	pool_cache_bootstrap(&pmap_cache, sizeof(struct pmap), 0, 0, 0,
 	    "pmappl", NULL, IPL_NONE, NULL, NULL, NULL);
 
-#ifdef XEN
+#ifdef XENPV
 	/*
 	 * pool_cache(9) should not touch cached objects, since they
 	 * are pinned on xen and R/O for the domU
@@ -1764,7 +1764,7 @@ pmap_init(void)
 	pmap_initialized = true;
 }
 
-#ifndef XEN
+#ifndef XENPV
 /*
  * pmap_cpu_init_late: perform late per-CPU initialization.
  */
@@ -2046,7 +2046,7 @@ pmap_free_ptp(struct pmap *pmap, struct 
 		 * On Xen-amd64 or SVS, we need to sync the top level page
 		 * directory on each CPU.
 		 */
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 		if (level == PTP_LEVELS - 1) {
 			xen_kpm_sync(pmap, index);
 		}
@@ -2061,7 +2061,7 @@ pmap_free_ptp(struct pmap *pmap, struct 
 		pmap_tlb_shootdown(pmap, invaladdr + index * PAGE_SIZE,
 		    opde, TLBSHOOT_FREE_PTP1);
 
-#if defined(XEN)
+#if defined(XENPV)
 		pmap_tlb_shootnow();
 #endif
 
@@ -2150,7 +2150,7 @@ pmap_get_ptp(struct pmap *pmap, vaddr_t 
 		 * On Xen-amd64 or SVS, we need to sync the top level page
 		 * directory on each CPU.
 		 */
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 		if (i == PTP_LEVELS) {
 			xen_kpm_sync(pmap, index);
 		}
@@ -2210,10 +2210,10 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 	vaddr_t object;
 	int i;
 
-#if !defined(XEN) || !defined(__x86_64__)
+#if !defined(XENPV) || !defined(__x86_64__)
 	int npde;
 #endif
-#ifdef XEN
+#ifdef XENPV
 	int s;
 #endif
 
@@ -2223,7 +2223,7 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 	 * NOTE: The `pmaps_lock' is held when the PDP is allocated.
 	 */
 
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 	/* Fetch the physical address of the page directory */
 	(void)pmap_extract(pmap_kernel(), (vaddr_t)pdir, &pdirpa);
 
@@ -2242,7 +2242,7 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 	 */
 	pdir[PDIR_SLOT_KERN + nkptp[PTP_LEVELS - 1] - 1] =
 	     (pd_entry_t)-1 & PG_FRAME;
-#else /* XEN && __x86_64__*/
+#else /* XENPV && __x86_64__*/
 	object = (vaddr_t)v;
 	for (i = 0; i < PDP_SIZE; i++, object += PAGE_SIZE) {
 		/* Fetch the physical address of the page directory */
@@ -2251,7 +2251,7 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 		/* Put in recursive PDE to map the PTEs */
 		pdir[PDIR_SLOT_PTE + i] = pmap_pa2pte(pdirpa) | PG_V |
 		    pmap_pg_nx;
-#ifndef XEN
+#ifndef XENPV
 		pdir[PDIR_SLOT_PTE + i] |= PG_KW;
 #endif
 	}
@@ -2276,9 +2276,9 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 #ifdef KASAN
 	slotspace_copy(SLAREA_ASAN, pdir, PDP_BASE);
 #endif
-#endif /* XEN  && __x86_64__*/
+#endif /* XENPV  && __x86_64__*/
 
-#ifdef XEN
+#ifdef XENPV
 	s = splvm();
 	object = (vaddr_t)v;
 	pmap_protect(pmap_kernel(), object, object + (PAGE_SIZE * PDP_SIZE),
@@ -2307,7 +2307,7 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 	xpq_queue_pin_l2_table(xpmap_ptom_masked(pdirpa));
 #endif
 	splx(s);
-#endif /* XEN */
+#endif /* XENPV */
 
 	return 0;
 }
@@ -2318,7 +2318,7 @@ pmap_pdp_ctor(void *arg, void *v, int fl
 static void
 pmap_pdp_dtor(void *arg, void *v)
 {
-#ifdef XEN
+#ifdef XENPV
 	paddr_t pdirpa = 0;	/* XXX: GCC */
 	vaddr_t object = (vaddr_t)v;
 	int i;
@@ -2339,7 +2339,7 @@ pmap_pdp_dtor(void *arg, void *v)
 		xen_bcast_invlpg((vaddr_t)object);
 	}
 	splx(s);
-#endif  /* XEN */
+#endif  /* XENPV */
 }
 
 #ifdef PAE
@@ -2400,7 +2400,7 @@ pmap_create(void)
 
 	kcpuset_create(&pmap->pm_cpus, true);
 	kcpuset_create(&pmap->pm_kernel_cpus, true);
-#ifdef XEN
+#ifdef XENPV
 	kcpuset_create(&pmap->pm_xen_ptp_cpus, true);
 #endif
 	/* init the LDT */
@@ -2473,7 +2473,7 @@ pmap_check_inuse(struct pmap *pmap)
 	for (CPU_INFO_FOREACH(cii, ci)) {
 		if (ci->ci_pmap == pmap)
 			panic("destroying pmap being used");
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 		for (int i = 0; i < PDIR_SLOT_USERLIM; i++) {
 			if (pmap->pm_pdir[i] != 0 &&
 			    ci->ci_kpm_pdir[i] == pmap->pm_pdir[i]) {
@@ -2577,7 +2577,7 @@ pmap_destroy(struct pmap *pmap)
 	}
 	kcpuset_destroy(pmap->pm_cpus);
 	kcpuset_destroy(pmap->pm_kernel_cpus);
-#ifdef XEN
+#ifdef XENPV
 	kcpuset_destroy(pmap->pm_xen_ptp_cpus);
 #endif
 
@@ -2792,14 +2792,14 @@ pmap_activate(struct lwp *l)
 	ci->ci_want_pmapload = 1;
 }
 
-#if defined(XEN) && defined(__x86_64__)
+#if defined(XENPV) && defined(__x86_64__)
 #define	KASSERT_PDIRPA(pmap) \
 	KASSERT(pmap_pdirpa(pmap, 0) == ci->ci_xen_current_user_pgd || \
 	    pmap == pmap_kernel())
 #elif defined(PAE)
 #define	KASSERT_PDIRPA(pmap) \
 	KASSERT(pmap_pdirpa(pmap, 0) == pmap_pte2pa(ci->ci_pae_l3_pdir[0]))
-#elif !defined(XEN)
+#elif !defined(XENPV)
 #define	KASSERT_PDIRPA(pmap) \
 	KASSERT(pmap_pdirpa(pmap, 0) == pmap_pte2pa(rcr3()))
 #else
@@ -2879,7 +2879,7 @@ pmap_load(void)
 
 	/* should be able to take ipis. */
 	KASSERT(ci->ci_ilevel < IPL_HIGH);
-#ifdef XEN
+#ifdef XENPV
 	/* Check to see if interrupts are enabled (ie; no events are masked) */
 	KASSERT(x86_read_psl() == 0);
 #else
@@ -2934,7 +2934,7 @@ pmap_load(void)
 #endif
 
 #ifdef i386
-#ifndef XEN
+#ifndef XENPV
 	ci->ci_tss->tss.tss_ldt = pmap->pm_ldt_sel;
 	ci->ci_tss->tss.tss_cr3 = pcb->pcb_cr3;
 #endif
@@ -3134,7 +3134,7 @@ vtophys(vaddr_t va)
 
 __strict_weak_alias(pmap_extract_ma, pmap_extract);
 
-#ifdef XEN
+#ifdef XENPV
 /*
  * vtomach: virtual address to machine address.  For use by
  * machine-dependent code only.
@@ -3167,7 +3167,7 @@ pmap_zero_page(paddr_t pa)
 #if defined(__HAVE_DIRECT_MAP)
 	pagezero(PMAP_DIRECT_MAP(pa));
 #else
-#if defined(XEN)
+#if defined(XENPV)
 	if (XEN_VERSION_SUPPORTED(3, 4))
 		xen_pagezero(pa);
 #endif
@@ -3191,7 +3191,7 @@ pmap_zero_page(paddr_t pa)
 
 	memset((void *)zerova, 0, PAGE_SIZE);
 
-#if defined(DIAGNOSTIC) || defined(XEN)
+#if defined(DIAGNOSTIC) || defined(XENPV)
 	pmap_pte_set(zpte, 0);				/* zap ! */
 	pmap_pte_flush();
 #endif
@@ -3232,7 +3232,7 @@ pmap_pageidlezero(paddr_t pa)
 
 	rv = sse2_idlezero_page((void *)zerova);
 
-#if defined(DIAGNOSTIC) || defined(XEN)
+#if defined(DIAGNOSTIC) || defined(XENPV)
 	pmap_pte_set(zpte, 0);				/* zap ! */
 	pmap_pte_flush();
 #endif
@@ -3250,7 +3250,7 @@ pmap_copy_page(paddr_t srcpa, paddr_t ds
 
 	memcpy((void *)dstva, (void *)srcva, PAGE_SIZE);
 #else
-#if defined(XEN)
+#if defined(XENPV)
 	if (XEN_VERSION_SUPPORTED(3, 4)) {
 		xen_copy_page(srcpa, dstpa);
 		return;
@@ -3280,7 +3280,7 @@ pmap_copy_page(paddr_t srcpa, paddr_t ds
 
 	memcpy((void *)dstva, (void *)srcva, PAGE_SIZE);
 
-#if defined(DIAGNOSTIC) || defined(XEN)
+#if defined(DIAGNOSTIC) || defined(XENPV)
 	pmap_pte_set(srcpte, 0);
 	pmap_pte_set(dstpte, 0);
 	pmap_pte_flush();
@@ -3302,7 +3302,7 @@ pmap_map_ptp(struct vm_page *ptp)
 
 	KASSERT(kpreempt_disabled());
 
-#ifndef XEN
+#ifndef XENPV
 	const pd_entry_t pteflags = PG_V | PG_RW | pmap_pg_nx | PG_U | PG_M;
 #else
 	const pd_entry_t pteflags = PG_V | pmap_pg_nx | PG_U | PG_M;
@@ -3325,7 +3325,7 @@ static void
 pmap_unmap_ptp(void)
 {
 #ifndef __HAVE_DIRECT_MAP
-#if defined(DIAGNOSTIC) || defined(XEN)
+#if defined(DIAGNOSTIC) || defined(XENPV)
 	struct cpu_info *ci;
 	pt_entry_t *pte;
 
@@ -4164,7 +4164,7 @@ pmap_enter_ma(struct pmap *pmap, vaddr_t
 	    pmap_valid_entry(pmap->pm_pdir[pl_i(va, PTP_LEVELS)]),
 	    "%s: missing kernel PTP for va=%#" PRIxVADDR, __func__, va);
 
-#ifdef XEN
+#ifdef XENPV
 	KASSERT(domid == DOMID_SELF || pa == 0);
 #endif
 
@@ -4185,7 +4185,7 @@ pmap_enter_ma(struct pmap *pmap, vaddr_t
 		}
 	}
 
-#ifdef XEN
+#ifdef XENPV
 	if (domid != DOMID_SELF)
 		new_pg = NULL;
 	else
@@ -4267,7 +4267,7 @@ pmap_enter_ma(struct pmap *pmap, vaddr_t
 		if (((opte ^ npte) & (PG_FRAME | PG_V)) == 0) {
 			npte |= opte & (PG_U | PG_M);
 		}
-#if defined(XEN)
+#if defined(XENPV)
 		if (domid != DOMID_SELF) {
 			/* pmap_pte_cas with error handling */
 			int s = splvm();
@@ -4287,7 +4287,7 @@ pmap_enter_ma(struct pmap *pmap, vaddr_t
 			}
 			break;
 		}
-#endif /* defined(XEN) */
+#endif /* defined(XENPV) */
 	} while (pmap_pte_cas(ptep, opte, npte) != opte);
 
 	/*
@@ -4379,7 +4379,7 @@ pmap_get_physpage(void)
 #if defined(__HAVE_DIRECT_MAP)
 		pagezero(PMAP_DIRECT_MAP(pa));
 #else
-#if defined(XEN)
+#if defined(XENPV)
 		if (XEN_VERSION_SUPPORTED(3, 4)) {
 			xen_pagezero(pa);
 			return pa;
@@ -4391,7 +4391,7 @@ pmap_get_physpage(void)
 		pmap_pte_flush();
 		pmap_update_pg((vaddr_t)early_zerop);
 		memset(early_zerop, 0, PAGE_SIZE);
-#if defined(DIAGNOSTIC) || defined(XEN)
+#if defined(DIAGNOSTIC) || defined(XENPV)
 		pmap_pte_set(early_zero_pte, 0);
 		pmap_pte_flush();
 #endif /* defined(DIAGNOSTIC) */
@@ -4428,7 +4428,7 @@ pmap_alloc_level(struct pmap *cpm, vaddr
 	unsigned long index, endindex;
 	int level;
 	pd_entry_t *pdep;
-#ifdef XEN
+#ifdef XENPV
 	int s = splvm(); /* protect xpq_* */
 #endif
 
@@ -4448,7 +4448,7 @@ pmap_alloc_level(struct pmap *cpm, vaddr
 			pte = pmap_pa2pte(pa) | PG_V | PG_RW;
 			pmap_pte_set(&pdep[i], pte);
 
-#ifdef XEN
+#ifdef XENPV
 			if (level == PTP_LEVELS && i >= PDIR_SLOT_KERN) {
 				if (__predict_true(
 				    cpu_info_primary.ci_flags & CPUF_PRESENT)) {
@@ -4477,7 +4477,7 @@ pmap_alloc_level(struct pmap *cpm, vaddr
 		}
 		pmap_pte_flush();
 	}
-#ifdef XEN
+#ifdef XENPV
 	splx(s);
 #endif
 }
@@ -4493,7 +4493,7 @@ pmap_growkernel(vaddr_t maxkvaddr)
 {
 	struct pmap *kpm = pmap_kernel();
 	struct pmap *cpm;
-#if !defined(XEN) || !defined(__x86_64__)
+#if !defined(XENPV) || !defined(__x86_64__)
 	struct pmap *pm;
 	long old;
 #endif
@@ -4511,7 +4511,7 @@ pmap_growkernel(vaddr_t maxkvaddr)
 	}
 
 	maxkvaddr = x86_round_pdr(maxkvaddr);
-#if !defined(XEN) || !defined(__x86_64__)
+#if !defined(XENPV) || !defined(__x86_64__)
 	old = nkptp[PTP_LEVELS - 1];
 #endif
 
@@ -4526,7 +4526,7 @@ pmap_growkernel(vaddr_t maxkvaddr)
 		needed_kptp[i] = target_nptp - nkptp[i];
 	}
 
-#ifdef XEN
+#ifdef XENPV
 	/* only pmap_kernel(), or the per-cpu map, has kernel entries */
 	cpm = kpm;
 #else
@@ -4549,7 +4549,7 @@ pmap_growkernel(vaddr_t maxkvaddr)
 	 * If the number of top level entries changed, update all pmaps.
 	 */
 	if (needed_kptp[PTP_LEVELS - 1] != 0) {
-#ifdef XEN
+#ifdef XENPV
 #ifdef __x86_64__
 		/* nothing, kernel entries are never entered in user pmap */
 #else
@@ -4567,7 +4567,7 @@ pmap_growkernel(vaddr_t maxkvaddr)
 		}
 		mutex_exit(&pmaps_lock);
 #endif /* __x86_64__ */
-#else /* XEN */
+#else /* XENPV */
 		size_t newpdes;
 		newpdes = nkptp[PTP_LEVELS - 1] - old;
 		if (cpm != kpm) {

Index: src/sys/arch/x86/x86/sys_machdep.c
diff -u src/sys/arch/x86/x86/sys_machdep.c:1.50 src/sys/arch/x86/x86/sys_machdep.c:1.51
--- src/sys/arch/x86/x86/sys_machdep.c:1.50	Thu Nov  8 10:55:41 2018
+++ src/sys/arch/x86/x86/sys_machdep.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sys_machdep.c,v 1.50 2018/11/08 10:55:41 maxv Exp $	*/
+/*	$NetBSD: sys_machdep.c,v 1.51 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*
  * Copyright (c) 1998, 2007, 2009, 2017 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_machdep.c,v 1.50 2018/11/08 10:55:41 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_machdep.c,v 1.51 2019/02/11 14:59:33 cherry Exp $");
 
 #include "opt_mtrr.h"
 #include "opt_user_ldt.h"
@@ -63,14 +63,14 @@ __KERNEL_RCSID(0, "$NetBSD: sys_machdep.
 #include <machine/sysarch.h>
 #include <machine/mtrr.h>
 
-#if defined(__x86_64__) || defined(XEN)
+#if defined(__x86_64__) || defined(XENPV)
 #undef	IOPERM	/* not implemented */
 #else
 #define	IOPERM
 #endif
 
-#if defined(XEN) && defined(USER_LDT)
-#error "USER_LDT not supported on XEN"
+#if defined(XENPV) && defined(USER_LDT)
+#error "USER_LDT not supported on XENPV"
 #endif
 
 extern struct vm_map *kernel_map;
@@ -359,7 +359,7 @@ x86_iopl(struct lwp *l, void *args, regi
 {
 	int error;
 	struct x86_iopl_args ua;
-#ifdef XEN
+#ifdef XENPV
 	int iopl;
 #else
 	struct trapframe *tf = l->l_md.md_regs;
@@ -373,7 +373,7 @@ x86_iopl(struct lwp *l, void *args, regi
 	if ((error = copyin(args, &ua, sizeof(ua))) != 0)
 		return error;
 
-#ifdef XEN
+#ifdef XENPV
 	if (ua.iopl)
 		iopl = SEL_UPL;
 	else
@@ -605,7 +605,7 @@ x86_set_sdbase32(void *arg, char which, 
 		    sizeof(struct segment_descriptor));
 		if (l == curlwp) {
 			update_descriptor(&curcpu()->ci_gdt[GUGS_SEL], &usd);
-#if defined(__x86_64__) && defined(XEN)
+#if defined(__x86_64__) && defined(XENPV)
 			setusergs(GSEL(GUGS_SEL, SEL_UPL));
 #endif
 		}

Index: src/sys/arch/x86/x86/vm_machdep.c
diff -u src/sys/arch/x86/x86/vm_machdep.c:1.36 src/sys/arch/x86/x86/vm_machdep.c:1.37
--- src/sys/arch/x86/x86/vm_machdep.c:1.36	Thu Jul 26 09:29:08 2018
+++ src/sys/arch/x86/x86/vm_machdep.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vm_machdep.c,v 1.36 2018/07/26 09:29:08 maxv Exp $	*/
+/*	$NetBSD: vm_machdep.c,v 1.37 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986 The Regents of the University of California.
@@ -80,7 +80,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.36 2018/07/26 09:29:08 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.37 2019/02/11 14:59:33 cherry Exp $");
 
 #include "opt_mtrr.h"
 
@@ -168,7 +168,7 @@ cpu_lwp_fork(struct lwp *l1, struct lwp 
 	pcb2->pcb_dbregs = NULL;
 	pcb2->pcb_flags &= ~PCB_DBREGS;
 
-#if defined(XEN)
+#if defined(XENPV)
 	pcb2->pcb_iopl = IOPL_KPL;
 #endif
 

Index: src/sys/arch/x86/x86/x86_machdep.c
diff -u src/sys/arch/x86/x86/x86_machdep.c:1.121 src/sys/arch/x86/x86/x86_machdep.c:1.122
--- src/sys/arch/x86/x86/x86_machdep.c:1.121	Mon Dec 24 22:05:45 2018
+++ src/sys/arch/x86/x86/x86_machdep.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: x86_machdep.c,v 1.121 2018/12/24 22:05:45 cherry Exp $	*/
+/*	$NetBSD: x86_machdep.c,v 1.122 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi,
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.121 2018/12/24 22:05:45 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.122 2019/02/11 14:59:33 cherry Exp $");
 
 #include "opt_modular.h"
 #include "opt_physmem.h"
@@ -461,7 +461,7 @@ void
 x86_cpu_idle_init(void)
 {
 
-#ifndef XEN
+#ifndef XENPV
 	if ((cpu_feature[1] & CPUID2_MONITOR) == 0 ||
 	    cpu_vendor == CPUVENDOR_AMD)
 		x86_cpu_idle_set(x86_cpu_idle_halt, "halt", true);
@@ -491,7 +491,7 @@ x86_cpu_idle_set(void (*func)(void), con
 	(void)strlcpy(x86_cpu_idle_text, text, sizeof(x86_cpu_idle_text));
 }
 
-#ifndef XEN
+#ifndef XENPV
 
 #define KBTOB(x)	((size_t)(x) * 1024UL)
 #define MBTOB(x)	((size_t)(x) * 1024UL * 1024UL)
@@ -948,7 +948,7 @@ init_x86_vm(paddr_t pa_kend)
 	return 0;
 }
 
-#endif /* !XEN */
+#endif /* !XENPV */
 
 void
 init_x86_msgbuf(void)
@@ -1092,7 +1092,7 @@ machdep_init(void)
 void
 x86_startup(void)
 {
-#if !defined(XEN)
+#if !defined(XENPV)
 	nmi_init();
 #endif
 }
@@ -1150,7 +1150,7 @@ sysctl_machdep_diskinfo(SYSCTLFN_ARGS)
 	return sysctl_lookup(SYSCTLFN_CALL(&node));
 }
 
-#ifndef XEN
+#ifndef XENPV
 static int
 sysctl_machdep_tsc_enable(SYSCTLFN_ARGS)
 {
@@ -1195,7 +1195,7 @@ const_sysctl(struct sysctllog **clog, co
 SYSCTL_SETUP(sysctl_machdep_setup, "sysctl machdep subtree setup")
 {
 	extern uint64_t tsc_freq;
-#ifndef XEN
+#ifndef XENPV
 	extern int tsc_user_enabled;
 #endif
 	extern int sparse_dump;
@@ -1247,7 +1247,7 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysc
 		       SYSCTL_DESCR("Whether the kernel uses PAE"),
 		       NULL, 0, &use_pae, 0,
 		       CTL_MACHDEP, CTL_CREATE, CTL_EOL);
-#ifndef XEN
+#ifndef XENPV
 	sysctl_createv(clog, 0, NULL, NULL,
 		       CTLFLAG_READWRITE,
 		       CTLTYPE_INT, "tsc_user_enable",
@@ -1271,12 +1271,12 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysc
 		       CTL_CREATE, CTL_EOL);
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 	void sysctl_speculation_init(struct sysctllog **);
 	sysctl_speculation_init(clog);
 #endif
 
-#ifndef XEN
+#ifndef XENPV
 	void sysctl_eagerfpu_init(struct sysctllog **);
 	sysctl_eagerfpu_init(clog);
 #endif
@@ -1298,7 +1298,7 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysc
 	const_sysctl(clog, "xsave_features", CTLTYPE_QUAD, x86_xsave_features,
 	    CPU_XSAVE_FEATURES);
 
-#ifndef XEN
+#ifndef XENPV
 	const_sysctl(clog, "biosbasemem", CTLTYPE_INT, biosbasemem,
 	    CPU_BIOSBASEMEM);
 	const_sysctl(clog, "biosextmem", CTLTYPE_INT, biosextmem,
@@ -1307,7 +1307,7 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysc
 }
 
 /* Here for want of a better place */
-#if defined(DOM0OPS) || !defined(XEN)
+#if defined(DOM0OPS) || !defined(XENPV)
 struct pic *
 intr_findpic(int num)
 {

Index: src/sys/arch/x86/x86/x86_tlb.c
diff -u src/sys/arch/x86/x86/x86_tlb.c:1.4 src/sys/arch/x86/x86/x86_tlb.c:1.5
--- src/sys/arch/x86/x86/x86_tlb.c:1.4	Sun Jan  6 16:19:12 2019
+++ src/sys/arch/x86/x86/x86_tlb.c	Mon Feb 11 14:59:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: x86_tlb.c,v 1.4 2019/01/06 16:19:12 maxv Exp $	*/
+/*	$NetBSD: x86_tlb.c,v 1.5 2019/02/11 14:59:33 cherry Exp $	*/
 
 /*-
  * Copyright (c) 2008-2012 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_tlb.c,v 1.4 2019/01/06 16:19:12 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_tlb.c,v 1.5 2019/02/11 14:59:33 cherry Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -52,9 +52,9 @@ __KERNEL_RCSID(0, "$NetBSD: x86_tlb.c,v 
 #include <uvm/uvm.h>
 
 #include <machine/cpuvar.h>
-#ifdef XEN
+#ifdef XENPV
 #include <xen/xenpmap.h>
-#endif /* XEN */
+#endif /* XENPV */
 #include <x86/i82489reg.h>
 #include <x86/i82489var.h>
 
@@ -223,7 +223,7 @@ pmap_tlb_shootdown(struct pmap *pm, vadd
 	pmap_tlb_packet_t *tp;
 	int s;
 
-#ifndef XEN
+#ifndef XENPV
 	KASSERT((pte & PG_G) == 0 || pm == pmap_kernel());
 #endif
 
@@ -280,7 +280,7 @@ pmap_tlb_shootdown(struct pmap *pm, vadd
 }
 
 #ifdef MULTIPROCESSOR
-#ifdef XEN
+#ifdef XENPV
 
 static inline void
 pmap_tlb_processpacket(pmap_tlb_packet_t *tp, kcpuset_t *target)
@@ -328,7 +328,7 @@ pmap_tlb_processpacket(pmap_tlb_packet_t
 	KASSERT(err == 0);
 }
 
-#endif /* XEN */
+#endif /* XENPV */
 #endif /* MULTIPROCESSOR */
 
 /*

Reply via email to