From 41ab42097ec02cb123cb3885d5d19e8011326a75 Mon Sep 17 00:00:00 2001
From: Julien Grall <julien.grall@linaro.org>
Date: Tue, 14 Jan 2014 01:41:10 +0000
Subject: [PATCH 24/48] xen: move x86/xen/xenpv.c in dev/xen/xenpv.c

---
 sys/conf/files      |   1 +
 sys/conf/files.i386 |   1 -
 sys/dev/xen/xenpv.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 sys/x86/xen/xenpv.c | 143 ----------------------------------------------------
 4 files changed, 144 insertions(+), 144 deletions(-)
 create mode 100644 sys/dev/xen/xenpv.c
 delete mode 100644 sys/x86/xen/xenpv.c

diff --git a/sys/conf/files b/sys/conf/files
index 4c293ea..730a3c8 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -2641,6 +2641,7 @@ dev/xen/netfront/netfront.c	optional xen | xenhvm
 dev/xen/xenpci/xenpci.c		optional xenpci
 dev/xen/timer/timer.c		optional xentimer
 dev/xen/pvcpu/pvcpu.c		optional xen | xenhvm
+dev/xen/xenpv.c			optional xen | xenhvm
 dev/xen/xenstore/xenstore.c	optional xen | xenhvm
 dev/xen/xenstore/xenstore_dev.c	optional xen | xenhvm
 dev/xen/xenstore/xenstored_dev.c	optional xen | xenhvm
diff --git a/sys/conf/files.i386 b/sys/conf/files.i386
index 6ebf0da..93d3895 100644
--- a/sys/conf/files.i386
+++ b/sys/conf/files.i386
@@ -598,6 +598,5 @@ x86/x86/delay.c			standard
 x86/xen/hvm.c			optional xenhvm
 x86/xen/xen_intr.c		optional xen | xenhvm
 x86/xen/xen_apic.c		optional xenhvm
-x86/xen/xenpv.c			optional xen | xenhvm
 x86/xen/xen_nexus.c		optional xen | xenhvm
 x86/xen/xen_msi.c		optional xen | xenhvm
diff --git a/sys/dev/xen/xenpv.c b/sys/dev/xen/xenpv.c
new file mode 100644
index 0000000..57ffb5d
--- /dev/null
+++ b/sys/dev/xen/xenpv.c
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2014 Roger Pau Monné <roger.pau@citrix.com>
+ * 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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/systm.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/pcpu.h>
+#include <sys/smp.h>
+#include <sys/rman.h>
+
+#include <xen/xen-os.h>
+#include <xen/gnttab.h>
+
+static devclass_t xenpv_devclass;
+
+/* End of MMIO region on x86 (4GB) */
+#define MMIO_END	(4*1073741824UL)
+
+static void
+xenpv_identify(driver_t *driver, device_t parent)
+{
+	if (!xen_domain())
+		return;
+
+	/* Make sure there's only one xenpv device. */
+	if (devclass_get_device(xenpv_devclass, 0))
+		return;
+
+	if (BUS_ADD_CHILD(parent, 0, "xenpv", 0) == NULL)
+		panic("Unable to attach xenpv bus.");
+}
+
+static int
+xenpv_probe(device_t dev)
+{
+
+	device_set_desc(dev, "Xen PV bus");
+	return (BUS_PROBE_NOWILDCARD);
+}
+
+static int
+xenpv_attach(device_t dev)
+{
+	device_t child;
+	int error;
+
+	/* Initialize grant table before any Xen specific device is attached */
+	error = gnttab_init(dev);
+	if (error != 0) {
+		device_printf(dev, "error initializing grant table: %d\n",
+		    error);
+		return (error);
+	}
+
+	/*
+	 * Let our child drivers identify any child devices that they
+	 * can find.  Once that is done attach any devices that we
+	 * found.
+	 */
+	bus_generic_probe(dev);
+	bus_generic_attach(dev);
+
+	if (!devclass_get_device(devclass_find("isa"), 0)) {
+		child = BUS_ADD_CHILD(dev, 0, "isa", 0);
+		if (child == NULL)
+			panic("Failed to attach ISA bus.");
+		device_probe_and_attach(child);
+	}
+
+	return (0);
+}
+
+static struct resource *
+xenpv_alloc_resource(device_t dev, device_t child, int type, int *rid,
+    u_long start, u_long end, u_long count, u_int flags)
+{
+
+	/*
+	 * Devices hanging off xenpv request memory in order to
+	 * map grants or foreign pages. By default use memory
+	 * after the MMIO region in order to prevent clashes with
+	 * real devices.
+	 */
+	if (type == SYS_RES_MEMORY && start < MMIO_END)
+		start = MMIO_END;
+
+        return (bus_generic_alloc_resource(dev, child, type, rid, start, end,
+	    count, flags));
+}
+
+static device_method_t xenpv_methods[] = {
+	/* Device interface */
+	DEVMETHOD(device_identify,		xenpv_identify),
+	DEVMETHOD(device_probe,			xenpv_probe),
+	DEVMETHOD(device_attach,		xenpv_attach),
+	DEVMETHOD(device_suspend,		bus_generic_suspend),
+	DEVMETHOD(device_resume,		bus_generic_resume),
+
+	/* Bus interface */
+	DEVMETHOD(bus_add_child,		bus_generic_add_child),
+	DEVMETHOD(bus_alloc_resource,		xenpv_alloc_resource),
+	DEVMETHOD(bus_release_resource,		bus_generic_release_resource),
+	DEVMETHOD(bus_activate_resource,	bus_generic_activate_resource),
+	DEVMETHOD(bus_deactivate_resource,	bus_generic_deactivate_resource),
+
+	DEVMETHOD_END
+};
+
+static driver_t xenpv_driver = {
+	"xenpv",
+	xenpv_methods,
+	0,
+};
+
+DRIVER_MODULE(xenpv, nexus, xenpv_driver, xenpv_devclass, 0, 0);
diff --git a/sys/x86/xen/xenpv.c b/sys/x86/xen/xenpv.c
deleted file mode 100644
index 57ffb5d..0000000
--- a/sys/x86/xen/xenpv.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2014 Roger Pau Monné <roger.pau@citrix.com>
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * 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/systm.h>
-#include <sys/bus.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <sys/pcpu.h>
-#include <sys/smp.h>
-#include <sys/rman.h>
-
-#include <xen/xen-os.h>
-#include <xen/gnttab.h>
-
-static devclass_t xenpv_devclass;
-
-/* End of MMIO region on x86 (4GB) */
-#define MMIO_END	(4*1073741824UL)
-
-static void
-xenpv_identify(driver_t *driver, device_t parent)
-{
-	if (!xen_domain())
-		return;
-
-	/* Make sure there's only one xenpv device. */
-	if (devclass_get_device(xenpv_devclass, 0))
-		return;
-
-	if (BUS_ADD_CHILD(parent, 0, "xenpv", 0) == NULL)
-		panic("Unable to attach xenpv bus.");
-}
-
-static int
-xenpv_probe(device_t dev)
-{
-
-	device_set_desc(dev, "Xen PV bus");
-	return (BUS_PROBE_NOWILDCARD);
-}
-
-static int
-xenpv_attach(device_t dev)
-{
-	device_t child;
-	int error;
-
-	/* Initialize grant table before any Xen specific device is attached */
-	error = gnttab_init(dev);
-	if (error != 0) {
-		device_printf(dev, "error initializing grant table: %d\n",
-		    error);
-		return (error);
-	}
-
-	/*
-	 * Let our child drivers identify any child devices that they
-	 * can find.  Once that is done attach any devices that we
-	 * found.
-	 */
-	bus_generic_probe(dev);
-	bus_generic_attach(dev);
-
-	if (!devclass_get_device(devclass_find("isa"), 0)) {
-		child = BUS_ADD_CHILD(dev, 0, "isa", 0);
-		if (child == NULL)
-			panic("Failed to attach ISA bus.");
-		device_probe_and_attach(child);
-	}
-
-	return (0);
-}
-
-static struct resource *
-xenpv_alloc_resource(device_t dev, device_t child, int type, int *rid,
-    u_long start, u_long end, u_long count, u_int flags)
-{
-
-	/*
-	 * Devices hanging off xenpv request memory in order to
-	 * map grants or foreign pages. By default use memory
-	 * after the MMIO region in order to prevent clashes with
-	 * real devices.
-	 */
-	if (type == SYS_RES_MEMORY && start < MMIO_END)
-		start = MMIO_END;
-
-        return (bus_generic_alloc_resource(dev, child, type, rid, start, end,
-	    count, flags));
-}
-
-static device_method_t xenpv_methods[] = {
-	/* Device interface */
-	DEVMETHOD(device_identify,		xenpv_identify),
-	DEVMETHOD(device_probe,			xenpv_probe),
-	DEVMETHOD(device_attach,		xenpv_attach),
-	DEVMETHOD(device_suspend,		bus_generic_suspend),
-	DEVMETHOD(device_resume,		bus_generic_resume),
-
-	/* Bus interface */
-	DEVMETHOD(bus_add_child,		bus_generic_add_child),
-	DEVMETHOD(bus_alloc_resource,		xenpv_alloc_resource),
-	DEVMETHOD(bus_release_resource,		bus_generic_release_resource),
-	DEVMETHOD(bus_activate_resource,	bus_generic_activate_resource),
-	DEVMETHOD(bus_deactivate_resource,	bus_generic_deactivate_resource),
-
-	DEVMETHOD_END
-};
-
-static driver_t xenpv_driver = {
-	"xenpv",
-	xenpv_methods,
-	0,
-};
-
-DRIVER_MODULE(xenpv, nexus, xenpv_driver, xenpv_devclass, 0, 0);
-- 
2.1.0

