summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2014-07-24 16:00:59 +0800
committerJeremy Kerr <jk@ozlabs.org>2014-07-28 13:50:35 +0800
commit24a530d0b58f57f151ee6d3df9f747ae98ef759f (patch)
tree389d1a64d8dd6122ff9464ed5117c1e518dba776 /ui
parente596e8e66b014161116c207daa8d42cff849bfd2 (diff)
downloadtalos-petitboot-24a530d0b58f57f151ee6d3df9f747ae98ef759f.tar.gz
talos-petitboot-24a530d0b58f57f151ee6d3df9f747ae98ef759f.zip
ui/common: Add discover_client_enumerate to re-add device data
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'ui')
-rw-r--r--ui/common/discover-client.c18
-rw-r--r--ui/common/discover-client.h5
2 files changed, 23 insertions, 0 deletions
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
OpenPOWER on IntegriCloud