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(®ion);
}
-#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(®ion, gdtstore, DYNSEL_START - 1);
lgdt(®ion);
-#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(®ion, 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(®ion, gdtstore, NGDT * sizeof(gdtstore[0]) - 1);
lgdt(®ion);
-#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(®ion, gdtstore, NGDT * sizeof(gdtstore[0]) - 1);
lgdt(®ion);
#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 */
/*