From b9c06364b42bade2ab26b7f1b552f00a9f6ad15e Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Wed, 28 Jun 2006 21:03:25 +0100 Subject: [PATCH] New /sys/hypervisor/uuid, containing this domain's UUID. Signed-off-by: Markus Armbruster --- .../drivers/xen/core/xen_sysfs.c | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/linux-2.6-xen-sparse/drivers/xen/core/xen_sysfs.c b/linux-2.6-xen-sparse/drivers/xen/core/xen_sysfs.c index b1396abb02..b58cbe96c2 100644 --- a/linux-2.6-xen-sparse/drivers/xen/core/xen_sysfs.c +++ b/linux-2.6-xen-sparse/drivers/xen/core/xen_sysfs.c @@ -8,12 +8,14 @@ */ #include +#include #include #include #include #include #include #include +#include MODULE_LICENSE("GPL"); MODULE_AUTHOR("Mike D. Day "); @@ -97,6 +99,37 @@ static void xen_sysfs_version_destroy(void) sysfs_remove_group(&hypervisor_subsys.kset.kobj, &version_group); } +/* UUID */ + +static ssize_t uuid_show(struct hyp_sysfs_attr *attr, char *buffer) +{ + char *vm, *val; + int ret; + + vm = xenbus_read(XBT_NIL, "vm", "", NULL); + if (IS_ERR(vm)) + return PTR_ERR(vm); + val = xenbus_read(XBT_NIL, vm, "uuid", NULL); + kfree(vm); + if (IS_ERR(val)) + return PTR_ERR(val); + ret = sprintf(buffer, "%s\n", val); + kfree(val); + return ret; +} + +HYPERVISOR_ATTR_RO(uuid); + +static int __init xen_sysfs_uuid_init(void) +{ + return sysfs_create_file(&hypervisor_subsys.kset.kobj, &uuid_attr.attr); +} + +static void xen_sysfs_uuid_destroy(void) +{ + sysfs_remove_file(&hypervisor_subsys.kset.kobj, &uuid_attr.attr); +} + /* xen compilation attributes */ static ssize_t compiler_show(struct hyp_sysfs_attr *attr, char *buffer) @@ -314,10 +347,15 @@ static int __init hyper_sysfs_init(void) ret = xen_compilation_init(); if (ret) goto comp_out; + ret = xen_sysfs_uuid_init(); + if (ret) + goto uuid_out; ret = xen_properties_init(); if (!ret) goto out; + xen_sysfs_uuid_destroy(); +uuid_out: xen_compilation_destroy(); comp_out: xen_sysfs_version_destroy(); @@ -331,6 +369,7 @@ static void hyper_sysfs_exit(void) { xen_properties_destroy(); xen_compilation_destroy(); + xen_sysfs_uuid_destroy(); xen_sysfs_version_destroy(); xen_sysfs_type_destroy(); -- 2.39.5