summaryrefslogtreecommitdiffstats
path: root/ui/common
diff options
context:
space:
mode:
authorGeoff Levand <geoffrey.levand@am.sony.com>2009-01-21 16:27:00 -0800
committerJeremy Kerr <jk@ozlabs.org>2009-02-01 11:54:15 +1100
commit285059cfed1f7572f2a46ca1385f874642db3f17 (patch)
treeca8cf3941ad4c65419f643c65c7cf8579e81a8fe /ui/common
parent5a1cb18519a0140ad49c460d99be2fb399efb802 (diff)
downloadtalos-petitboot-285059cfed1f7572f2a46ca1385f874642db3f17.tar.gz
talos-petitboot-285059cfed1f7572f2a46ca1385f874642db3f17.zip
Add client ops instance arg
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>
Diffstat (limited to 'ui/common')
-rw-r--r--ui/common/discover-client.c4
-rw-r--r--ui/common/discover-client.h12
2 files changed, 12 insertions, 4 deletions
diff --git a/ui/common/discover-client.c b/ui/common/discover-client.c
index 422c182..112fa65 100644
--- a/ui/common/discover-client.c
+++ b/ui/common/discover-client.c
@@ -92,7 +92,7 @@ int discover_client_process(struct discover_client *client)
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:
@@ -101,7 +101,7 @@ int discover_client_process(struct discover_client *client)
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);
diff --git a/ui/common/discover-client.h b/ui/common/discover-client.h
index 50bea6c..bc2294a 100644
--- a/ui/common/discover-client.h
+++ b/ui/common/discover-client.h
@@ -5,9 +5,17 @@
struct discover_client;
+/**
+ * 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 {
- 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);
OpenPOWER on IntegriCloud