aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen/xenbus/xenbus_xs.c
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2016-10-31 14:58:40 +0100
committerJuergen Gross <jgross@suse.com>2016-11-07 13:55:02 +0100
commit9c53a1792a5e6c708897d0cb17f2a4509e499a52 (patch)
tree48de24da67c301fcd0eed7cf3af4c2af837e3ba7 /drivers/xen/xenbus/xenbus_xs.c
parentLinux 4.9-rc4 (diff)
downloadlinux-dev-9c53a1792a5e6c708897d0cb17f2a4509e499a52.tar.xz
linux-dev-9c53a1792a5e6c708897d0cb17f2a4509e499a52.zip
xen: introduce xenbus_read_unsigned()
There are multiple instances of code reading an optional unsigned parameter from Xenstore via xenbus_scanf(). Instead of repeating the same code over and over add a service function doing the job. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'drivers/xen/xenbus/xenbus_xs.c')
-rw-r--r--drivers/xen/xenbus/xenbus_xs.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index 22f7cd711c57..99dfdfae42c6 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -559,6 +559,21 @@ int xenbus_scanf(struct xenbus_transaction t,
}
EXPORT_SYMBOL_GPL(xenbus_scanf);
+/* Read an (optional) unsigned value. */
+unsigned int xenbus_read_unsigned(const char *dir, const char *node,
+ unsigned int default_val)
+{
+ unsigned int val;
+ int ret;
+
+ ret = xenbus_scanf(XBT_NIL, dir, node, "%u", &val);
+ if (ret <= 0)
+ val = default_val;
+
+ return val;
+}
+EXPORT_SYMBOL_GPL(xenbus_read_unsigned);
+
/* Single printf and write: returns -errno or 0. */
int xenbus_printf(struct xenbus_transaction t,
const char *dir, const char *node, const char *fmt, ...)