svn commit: r256035 - in projects/amd64_xen_pv/sys: conf i386/xen x86/xen
Cherry G. Mathew
cherry at FreeBSD.org
Fri Oct 4 01:39:21 UTC 2013
Author: cherry
Date: Fri Oct 4 01:39:20 2013
New Revision: 256035
URL: http://svnweb.freebsd.org/changeset/base/256035
Log:
Make the i386 xen/pv mptable.c common for amd64/i386
Approved by: gibbs(implicit)
Added:
projects/amd64_xen_pv/sys/x86/xen/mptable.c
- copied unchanged from r255919, projects/amd64_xen_pv/sys/i386/xen/mptable.c
Deleted:
projects/amd64_xen_pv/sys/i386/xen/mptable.c
Modified:
projects/amd64_xen_pv/sys/conf/files.amd64
projects/amd64_xen_pv/sys/conf/files.i386
Modified: projects/amd64_xen_pv/sys/conf/files.amd64
==============================================================================
--- projects/amd64_xen_pv/sys/conf/files.amd64 Thu Oct 3 23:56:38 2013 (r256034)
+++ projects/amd64_xen_pv/sys/conf/files.amd64 Fri Oct 4 01:39:20 2013 (r256035)
@@ -565,4 +565,5 @@ x86/x86/msi.c optional native pci
x86/x86/nexus.c standard
x86/x86/tsc.c standard
x86/xen/hvm.c optional xenhvm
+x86/xen/mptable.c optional xen
x86/xen/xen_intr.c optional xen | xenhvm
Modified: projects/amd64_xen_pv/sys/conf/files.i386
==============================================================================
--- projects/amd64_xen_pv/sys/conf/files.i386 Thu Oct 3 23:56:38 2013 (r256034)
+++ projects/amd64_xen_pv/sys/conf/files.i386 Fri Oct 4 01:39:20 2013 (r256035)
@@ -461,7 +461,7 @@ i386/i386/mp_machdep.c optional native
i386/xen/mp_machdep.c optional xen smp
i386/i386/mp_watchdog.c optional mp_watchdog smp
i386/i386/mpboot.s optional smp native
-i386/xen/mptable.c optional apic xen
+x86/xen/mptable.c optional apic xen
i386/i386/perfmon.c optional perfmon
i386/i386/pmap.c optional native
i386/xen/pmap.c optional xen
Copied: projects/amd64_xen_pv/sys/x86/xen/mptable.c (from r255919, projects/amd64_xen_pv/sys/i386/xen/mptable.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/amd64_xen_pv/sys/x86/xen/mptable.c Fri Oct 4 01:39:20 2013 (r256035, copy of r255919, projects/amd64_xen_pv/sys/i386/xen/mptable.c)
@@ -0,0 +1,109 @@
+/*-
+ * Copyright (c) 2003 John Baldwin <jhb at FreeBSD.org>
+ * Copyright (c) 1996, by Steve Passe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. The name of the developer may NOT be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+
+#include <vm/vm.h>
+#include <vm/vm_param.h>
+#include <vm/pmap.h>
+
+#include <machine/frame.h>
+#include <machine/intr_machdep.h>
+#include <machine/apicvar.h>
+
+#include <xen/hypervisor.h>
+#include <xen/xen-os.h>
+#include <machine/smp.h>
+#include <xen/interface/vcpu.h>
+
+
+static int mptable_probe(void);
+static int mptable_probe_cpus(void);
+static void mptable_register(void *dummy);
+static int mptable_setup_local(void);
+static int mptable_setup_io(void);
+
+static struct apic_enumerator mptable_enumerator = {
+ "MPTable",
+ mptable_probe,
+ mptable_probe_cpus,
+ mptable_setup_local,
+ mptable_setup_io
+};
+
+static int
+mptable_probe(void)
+{
+
+ return (-100);
+}
+
+static int
+mptable_probe_cpus(void)
+{
+ int i, rc;
+
+ for (i = 0; i < MAXCPU; i++) {
+ rc = HYPERVISOR_vcpu_op(VCPUOP_is_up, i, NULL);
+ if (rc >= 0)
+ cpu_add(i, (i == 0));
+ }
+
+ return (0);
+}
+
+/*
+ * Initialize the local APIC on the BSP.
+ */
+static int
+mptable_setup_local(void)
+{
+
+ PCPU_SET(apic_id, 0);
+ PCPU_SET(acpi_id, 0);
+ return (0);
+}
+
+static int
+mptable_setup_io(void)
+{
+
+ return (0);
+}
+
+static void
+mptable_register(void *dummy __unused)
+{
+
+ apic_register_enumerator(&mptable_enumerator);
+}
+SYSINIT(mptable_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST, mptable_register,
+ NULL);
More information about the svn-src-projects
mailing list