Add a user supplied agument to the struct discover_client_ops
callback routines that is suitable for managing client instance
data.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
pb_log("%s: no device?\n", __func__);
return 0;
}
pb_log("%s: no device?\n", __func__);
return 0;
}
- client->ops.add_device(dev);
+ client->ops.add_device(dev, client->ops.cb_arg);
talloc_free(dev);
break;
case PB_PROTOCOL_ACTION_REMOVE:
talloc_free(dev);
break;
case PB_PROTOCOL_ACTION_REMOVE:
pb_log("%s: no device id?\n", __func__);
return 0;
}
pb_log("%s: no device id?\n", __func__);
return 0;
}
- client->ops.remove_device(dev_id);
+ client->ops.remove_device(dev_id, client->ops.cb_arg);
break;
default:
pb_log("%s: unknown action %d\n", __func__, message->action);
break;
default:
pb_log("%s: unknown action %d\n", __func__, message->action);
+/**
+ * struct discover_client_ops - Application supplied client info.
+ * @add_device: PB_PROTOCOL_ACTION_ADD event callback.
+ * @remove_device: PB_PROTOCOL_ACTION_REMOVE event callback.
+ * @cb_arg: Client managed convenience variable passed to callbacks.
+ */
+
struct discover_client_ops {
struct discover_client_ops {
- int (*add_device)(struct device *);
- void (*remove_device)(char *);
+ int (*add_device)(struct device *device, void *arg);
+ void (*remove_device)(char *dev_id, void *arg);
+ void *cb_arg;
};
struct discover_client *discover_client_init(struct discover_client_ops *ops);
};
struct discover_client *discover_client_init(struct discover_client_ops *ops);
#include "ui/common/discover-client.h"
#include "ui/common/discover-client.h"
-static int print_device_add(struct device *device)
+static int print_device_add(struct device *device,
+ void __attribute__((unused)) *arg)
{
struct boot_option *opt;
{
struct boot_option *opt;
-static void print_device_remove(char *dev_id)
+static void print_device_remove(char *dev_id, void __attribute__((unused)) *arg)
{
printf("removed device:\n");
printf("\tid: %s\n", dev_id);
}
{
printf("removed device:\n");
printf("\tid: %s\n", dev_id);
}
-struct discover_client_ops client_ops = {
+static struct discover_client_ops client_ops = {
.add_device = print_device_add,
.remove_device = print_device_remove,
};
.add_device = print_device_add,
.remove_device = print_device_remove,
};