PERFORCE change 90448 for review
Scott Long
scottl at FreeBSD.org
Thu Jan 26 19:54:47 PST 2006
http://perforce.freebsd.org/chv.cgi?CH=90448
Change 90448 by scottl at scottl-junior on 2006/01/27 03:53:46
Add the foundation for the xenbus device.
Affected files ...
.. //depot/projects/xen3-newbus/src/sys/dev/xen/xenbus/xenbus_probe.c#4 edit
Differences ...
==== //depot/projects/xen3-newbus/src/sys/dev/xen/xenbus/xenbus_probe.c#4 (text+ko) ====
@@ -1218,15 +1218,11 @@
DEVMETHOD(bus_add_child, xenhub_add_child),
DEVMETHOD(bus_read_ivar, bus_generic_read_ivar),
DEVMETHOD(bus_write_ivar, bus_generic_write_ivar),
-#if 0
DEVMETHOD(bus_set_resource, bus_generic_set_resource),
DEVMETHOD(bus_get_resource, bus_generic_get_resource),
-#endif
DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
-#if 0
DEVMETHOD(bus_delete_resource, bus_generic_delete_resource),
-#endif
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
DEVMETHOD(bus_setup_intr, bus_generic_setup_intr),
@@ -1235,16 +1231,65 @@
{ 0, 0 }
};
-static char driver_name[] = "xenbus";
static driver_t xenbus_driver = {
"xenhub",
xenhub_methods,
- sizeof(struct xenhub_device),
+ sizeof(struct xenbus_device),
};
+
devclass_t xenhub_devclass;
DRIVER_MODULE(xenhub, nexus, xenhub_driver, xenhub_devclass, 0, 0);
+struct xenbus_softc {
+ device_t dev;
+ struct xen_bus_type *xenbus;
+};
+
+static int
+xenbus_prob(device_t dev)
+{
+
+ return (0);
+}
+
+static int
+xenbus_attach(device_t dev)
+{
+ struct xenbus_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ sc->dev = dev;
+ sc->xenbus = device_get_ivars(dev);
+
+ /* Enumerate devices in xenstore */
+ xenbus_probe_device(sc->xenbus);
+
+ return (0);
+}
+
+static device_method_t xenbus_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, xenbus_probe),
+ DEVMETHOD(device_attach, xenbus_attach),
+ DEVMETHOD(device_detach, bus_generic_detach),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+ DEVMETHOD(device_suspend, xenbus_suspend),
+ DEVMETHOD(device_resume, xenbus_resume),
+ { 0, 0 }
+};
+
+static driver_t xenbus_driver = {
+ "xenbus",
+ xenbus_methods,
+ sizeof(struct xenbus_softc),
+};
+
+devclass xenbus_devclass;
+
+DRIVER_MODULE(xenbus, xenhub, xenbus_driver, xenbus_devclass, 0, 0);
+
/*
* Local variables:
* c-file-style: "bsd"
More information about the p4-projects
mailing list