summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2016-12-12 15:43:21 +0800
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-12-20 16:40:21 +1100
commit8ed7af65d5eaea57a62c26bef6267047cf3c95ea (patch)
treef42e72b0d7ae399fb1c585464c19dc26b9301b80
parent458e307dd5a19de5c530c9eebeffadfce1a48feb (diff)
downloadtalos-petitboot-8ed7af65d5eaea57a62c26bef6267047cf3c95ea.tar.gz
talos-petitboot-8ed7af65d5eaea57a62c26bef6267047cf3c95ea.zip
discover: Add device-specific status reporting functions
Most of our status reporting is against a specific device, so add status reporting functions that take a struct discover_device and use a stnadard prefix. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
-rw-r--r--discover/device-handler.c32
-rw-r--r--discover/device-handler.h4
2 files changed, 36 insertions, 0 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c
index 281a3c4..87a46c7 100644
--- a/discover/device-handler.c
+++ b/discover/device-handler.c
@@ -429,6 +429,38 @@ static void _device_handler_vstatus(struct device_handler *handler,
talloc_free(status.message);
}
+static void _device_handler_vdevstatus(struct device_handler *handler,
+ struct discover_device *device, enum status_type type,
+ const char *fmt, va_list ap)
+{
+ char *msg;
+
+ msg = talloc_asprintf(handler, "[%s] %s",
+ device ? device->device->id : "unknown", fmt);
+ _device_handler_vstatus(handler, type, msg, ap);
+ talloc_free(msg);
+}
+
+void device_handler_status_dev_info(struct device_handler *handler,
+ struct discover_device *dev, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ _device_handler_vdevstatus(handler, dev, STATUS_INFO, fmt, ap);
+ va_end(ap);
+}
+
+void device_handler_status_dev_err(struct device_handler *handler,
+ struct discover_device *dev, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ _device_handler_vdevstatus(handler, dev, STATUS_ERROR, fmt, ap);
+ va_end(ap);
+}
+
void device_handler_status_info(struct device_handler *handler,
const char *fmt, ...)
{
diff --git a/discover/device-handler.h b/discover/device-handler.h
index f4022e7..fe8a3b0 100644
--- a/discover/device-handler.h
+++ b/discover/device-handler.h
@@ -102,6 +102,10 @@ void device_handler_status_info(struct device_handler *handler,
const char *fmt, ...);
void device_handler_status_err(struct device_handler *handler,
const char *fmt, ...);
+void device_handler_status_dev_info(struct device_handler *handler,
+ struct discover_device *dev, const char *fmt, ...);
+void device_handler_status_dev_err(struct device_handler *handler,
+ struct discover_device *dev, const char *fmt, ...);
struct discover_context *device_handler_discover_context_create(
struct device_handler *handler,
OpenPOWER on IntegriCloud