Re: [patch 19/20] XEN-paravirt: Add the Xenbus sysfs and virtual device hotplug driver.
From: Pavel Machek <hidden>
Date: 2007-01-17 15:37:34
Also in:
lkml, xen-devel
Hi!
This communicates with the machine control software via a registry residing in a controlling virtual machine. This allows dynamic creation, destruction and modification of virtual device configurations (network devices, block devices and CPUS, to name some examples). Signed-off-by: Ian Pratt <redacted> Signed-off-by: Christian Limpach <redacted> Signed-off-by: Jeremy Fitzhardinge <redacted> Signed-off-by: Chris Wright <redacted> --- drivers/xen/Makefile | 1 drivers/xen/xenbus/Makefile | 7 drivers/xen/xenbus/xenbus_client.c | 528 ++++++++++++++++++++ drivers/xen/xenbus/xenbus_comms.c | 222 ++++++++ drivers/xen/xenbus/xenbus_comms.h | 43 + drivers/xen/xenbus/xenbus_probe.c | 954 +++++++++++++++++++++++++++++++++++++ drivers/xen/xenbus/xenbus_xs.c | 828 ++++++++++++++++++++++++++++++++
Hmm, you have word 'xen' three times in this pathname, and then the file is name 'xs'. Trying to do xen advertising in path names? :-)
quoted hunk ↗ jump to hunk
@@ -0,0 +1,565 @@ +/****************************************************************************** + * Client-facing interface for the Xenbus driver. In other words, the + * interface between the Xenbus and the device-specific code, be it the + * frontend or the backend of that driver. + * + * Copyright (C) 2005 XenSource Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation; or, when distributed + * separately from the Linux kernel or incorporated into other + * software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software.
So this is dual BSD/GPL?
+#include <linux/types.h>
+#include <xen/interface/xen.h>
+#include <xen/interface/event_channel.h>
+#include "../../../arch/i386/paravirt-xen/events.h"
+#include <xen/grant_table.h>
+#include <xen/xenbus.h>
+#include <xen/driver_util.h>
+
+char *xenbus_strstate(enum xenbus_state state)
+{
+ static char *name[] = {
+ [ XenbusStateUnknown ] = "Unknown",Constants are normally XENBUS_STATE_UNKNOWN in linux... Can we get description of its kernel-user interface in Documentation/ somewhere?
+#include <asm/io.h> +#include <asm/page.h> +//#include <asm/maddr.h> +#include <asm/pgtable.h> +#include <asm/hypervisor.h> +#include <xen/xenbus.h> +//#include <xen/xen_proc.h> +//#include <xen/evtchn.h> +#include <xen/features.h> +//#include <xen/hvm.h> +
Just delete the lines.
+#ifdef HAVE_XEN_PLATFORM_COMPAT_H +#include <xen/platform-compat.h> +#endif
Is this really neccessary?
+ .bus = {
+ .name = "xen-backend",
+ .match = xenbus_match,
+ .probe = xenbus_dev_probe,
+ .remove = xenbus_dev_remove,
+// .shutdown = xenbus_dev_shutdown,Delete.
quoted hunk ↗ jump to hunk
--- /dev/null +++ b/drivers/xen/xenbus/xenbus_xs.c@@ -0,0 +1,840 @@ +/****************************************************************************** + * xenbus_xs.c + * + * This is the kernel equivalent of the "xs" library. We don't need everything + * and we use xenbus_comms for communication.
One line explanation what xs is would be nice. Pavel -- Thanks for all the (sleeping) penguins.