From: Jeremy Kerr Date: Thu, 24 Jul 2014 08:00:59 +0000 (+0800) Subject: ui/common: Add discover_client_enumerate to re-add device data X-Git-Tag: v1.0.0~144 X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=24a530d0b58f57f151ee6d3df9f747ae98ef759f ui/common: Add discover_client_enumerate to re-add device data Signed-off-by: Jeremy Kerr --- diff --git a/ui/common/discover-client.c b/ui/common/discover-client.c index a124f8b..a565be8 100644 --- a/ui/common/discover-client.c +++ b/ui/common/discover-client.c @@ -112,6 +112,24 @@ static void device_remove(struct discover_client *client, const char *id) talloc_free(device); } +void discover_client_enumerate(struct discover_client *client) +{ + struct boot_option *opt; + struct device *device; + int i; + + for (i = 0; i < client->n_devices; i++) { + device = client->devices[i]; + if (client->ops.device_add) + client->ops.device_add(device, client->ops.cb_arg); + + list_for_each_entry(&device->boot_options, opt, list) + if (client->ops.boot_option_add) + client->ops.boot_option_add(device, opt, + client->ops.cb_arg); + } +} + static void update_status(struct discover_client *client, struct boot_status *status) { diff --git a/ui/common/discover-client.h b/ui/common/discover-client.h index 405bd24..d5c573f 100644 --- a/ui/common/discover-client.h +++ b/ui/common/discover-client.h @@ -82,4 +82,9 @@ int discover_client_send_reinit(struct discover_client *client); /* Send new configuration data to the discover server */ int discover_client_send_config(struct discover_client *client, struct config *config); + +/* Re-enumerate the collected devices & boot options, calling ops->device_add + * and ops->boot_option_add on each. + */ +void discover_client_enumerate(struct discover_client *client); #endif