diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2016-12-08 13:08:15 +1100 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2016-12-20 15:04:29 +1100 |
commit | b5f9e34d85075afe7aa87b5ce4a1a2d911468e36 (patch) | |
tree | 2f1daf66c1d80f3141a3cd15d8ce1515606e5e10 /discover/device-handler.c | |
parent | c5ae6f4846ca4bd8e13ffa08a293950433f3096c (diff) | |
download | talos-petitboot-b5f9e34d85075afe7aa87b5ce4a1a2d911468e36.tar.gz talos-petitboot-b5f9e34d85075afe7aa87b5ce4a1a2d911468e36.zip |
discover: Add helpers for status reporting
This change adds a couple of helpers for the status reporting API,
allowing callers to provide just a set of printf-style arguments, rather
than having to build up a struct status.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/device-handler.c')
-rw-r--r-- | discover/device-handler.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c index 81bdedb..b8825ce 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -416,6 +416,39 @@ void device_handler_status(struct device_handler *handler, discover_server_notify_boot_status(handler->server, status); } +static void _device_handler_vstatus(struct device_handler *handler, + enum status_type type, const char *fmt, va_list ap) +{ + struct status status; + + status.type = type; + status.message = talloc_vasprintf(handler, fmt, ap); + + device_handler_status(handler, &status); + + talloc_free(status.message); +} + +void device_handler_status_info(struct device_handler *handler, + const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + _device_handler_vstatus(handler, STATUS_INFO, fmt, ap); + va_end(ap); +} + +void device_handler_status_err(struct device_handler *handler, + const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + _device_handler_vstatus(handler, STATUS_ERROR, fmt, ap); + va_end(ap); +} + static void device_handler_boot_status_cb(void *arg, struct status *status) { device_handler_status(arg, status); |