+static void context_commit(struct device_handler *handler,
+ struct discover_context *ctx)
+{
+ struct discover_device *dev = ctx->device;
+ unsigned int i, existing_device;
+ struct boot_option *opt, *tmp;
+
+ /* do we already have this device? */
+ for (i = 0; i < handler->n_devices; i++) {
+ if (ctx->device == handler->devices[i]) {
+ existing_device = 1;
+ break;
+ }
+ }
+
+ /* if not already present, add the device to the handler's array */
+ if (!existing_device) {
+ handler->n_devices++;
+ handler->devices = talloc_realloc(handler, handler->devices,
+ struct discover_device *, handler->n_devices);
+ handler->devices[handler->n_devices - 1] = dev;
+ talloc_steal(handler, dev);
+
+ discover_server_notify_device_add(handler->server, dev->device);
+ }
+