summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2016-12-07 11:43:08 +1100
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-12-20 15:04:26 +1100
commitc5ae6f4846ca4bd8e13ffa08a293950433f3096c (patch)
tree51fcbd90ce451b6b09d6162b975d6eb349efcea3
parent685fc9d70bb5f09ef345ea0f3d8c3422fd77d611 (diff)
downloadpetitboot-c5ae6f4846ca4bd8e13ffa08a293950433f3096c.zip
petitboot-c5ae6f4846ca4bd8e13ffa08a293950433f3096c.tar.gz
discover: separate status-reporting function from boot() callback
Currently, the device_discover_boot_status function is both used for internal status updates, as well as the callback passed to boot(). This change splits this into two functions; one for the latter and one for the former. The latter just has a void * for its first argument, to match the boot_status_fn type. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
-rw-r--r--discover/device-handler.c28
-rw-r--r--discover/device-handler.h3
-rw-r--r--discover/pxe-parser.c2
3 files changed, 19 insertions, 14 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c
index 2e96c2b..81bdedb 100644
--- a/discover/device-handler.c
+++ b/discover/device-handler.c
@@ -410,13 +410,17 @@ void device_handler_remove(struct device_handler *handler,
talloc_free(device);
}
-void device_handler_boot_status(void *arg, struct status *status)
+void device_handler_status(struct device_handler *handler,
+ struct status *status)
{
- struct device_handler *handler = arg;
-
discover_server_notify_boot_status(handler->server, status);
}
+static void device_handler_boot_status_cb(void *arg, struct status *status)
+{
+ device_handler_status(arg, status);
+}
+
static void countdown_status(struct device_handler *handler,
struct discover_boot_option *opt, unsigned int sec)
{
@@ -426,7 +430,7 @@ static void countdown_status(struct device_handler *handler,
status.message = talloc_asprintf(handler,
_("Booting in %d sec: %s"), sec, opt->option->name);
- discover_server_notify_boot_status(handler->server, &status);
+ device_handler_status(handler, &status);
talloc_free(status.message);
}
@@ -460,7 +464,7 @@ static int default_timeout(void *arg)
platform_pre_boot();
handler->pending_boot = boot(handler, handler->default_boot_option,
- NULL, handler->dry_run, device_handler_boot_status,
+ NULL, handler->dry_run, device_handler_boot_status_cb,
handler);
handler->pending_boot_is_default = true;
return 0;
@@ -848,7 +852,7 @@ int device_handler_discover(struct device_handler *handler,
status->message = talloc_asprintf(status, _("Processing %s device %s"),
device_type_display_name(dev->device->type),
dev->device->id);
- device_handler_boot_status(handler, status);
+ device_handler_status(handler, status);
process_boot_option_queue(handler);
@@ -876,7 +880,7 @@ out:
*/
status->message = talloc_asprintf(status,_("Processing %s complete"),
dev->device->id);
- device_handler_boot_status(handler, status);
+ device_handler_status(handler, status);
talloc_free(status);
talloc_unlink(handler, ctx);
@@ -899,7 +903,7 @@ int device_handler_dhcp(struct device_handler *handler,
*/
status->message = talloc_asprintf(status, _("Processing dhcp event on %s"),
dev->device->id);
- device_handler_boot_status(handler, status);
+ device_handler_status(handler, status);
/* create our context */
ctx = device_handler_discover_context_create(handler, dev);
@@ -916,7 +920,7 @@ int device_handler_dhcp(struct device_handler *handler,
*/
status->message = talloc_asprintf(status,_("Processing %s complete"),
dev->device->id);
- device_handler_boot_status(handler, status);
+ device_handler_status(handler, status);
talloc_free(status);
talloc_unlink(handler, ctx);
@@ -955,7 +959,7 @@ void device_handler_boot(struct device_handler *handler,
platform_pre_boot();
handler->pending_boot = boot(handler, opt, cmd, handler->dry_run,
- device_handler_boot_status, handler);
+ device_handler_boot_status_cb, handler);
handler->pending_boot_is_default = false;
}
@@ -986,7 +990,7 @@ void device_handler_cancel_default(struct device_handler *handler)
status.type = STATUS_INFO;
status.message = _("Default boot cancelled");
- discover_server_notify_boot_status(handler->server, &status);
+ device_handler_status(handler, &status);
}
void device_handler_update_config(struct device_handler *handler,
@@ -1152,7 +1156,7 @@ void device_handler_process_url(struct device_handler *handler,
status->message = talloc_asprintf(status, _("Config file %s parsed"),
pb_url->file);
msg:
- device_handler_boot_status(handler, status);
+ device_handler_status(handler, status);
talloc_free(status);
}
diff --git a/discover/device-handler.h b/discover/device-handler.h
index c6f3ad1..89ca87a 100644
--- a/discover/device-handler.h
+++ b/discover/device-handler.h
@@ -96,7 +96,8 @@ int device_handler_dhcp(struct device_handler *handler,
void device_handler_remove(struct device_handler *handler,
struct discover_device *device);
-void device_handler_boot_status(void *arg, struct status *status);
+void device_handler_status(struct device_handler *handler,
+ struct status *status);
struct discover_context *device_handler_discover_context_create(
struct device_handler *handler,
diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c
index 221fc30..a044215 100644
--- a/discover/pxe-parser.c
+++ b/discover/pxe-parser.c
@@ -286,7 +286,7 @@ static void pxe_conf_parse_cb(struct load_url_result *result, void *data)
*/
status.message = talloc_asprintf(conf, _("pxe: parsed config for %s"),
conf->dc->conf_url->host);
- device_handler_boot_status(handler, &status);
+ device_handler_status(handler, &status);
talloc_free(buf);
out_clean:
OpenPOWER on IntegriCloud