summaryrefslogtreecommitdiffstats
path: root/libusbhost
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-07-19 20:15:15 -0400
committerMike Lockwood <lockwood@android.com>2010-07-20 09:50:56 -0400
commita805519ceedc53afa5453a6d8a7d80038d885d9f (patch)
treeb01636a009cd39592e9989fa8b552e89a79edebb /libusbhost
parentd5c4d2ae3af12f13f1d6700b395fcac13143d01c (diff)
downloadsystem_core-a805519ceedc53afa5453a6d8a7d80038d885d9f.zip
system_core-a805519ceedc53afa5453a6d8a7d80038d885d9f.tar.gz
system_core-a805519ceedc53afa5453a6d8a7d80038d885d9f.tar.bz2
libusbhost: Add callback to usb_host_run to notify when initial device discovery is done
This can be used to eliminate race conditions in clients that operate immediately on the currently connected device list. Signed-off-by: Mike Lockwood <lockwood@android.com> Change-Id: I14954b9fcc84239950ead6bdc1a0a888882c2226
Diffstat (limited to 'libusbhost')
-rw-r--r--libusbhost/usbhost.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libusbhost/usbhost.c b/libusbhost/usbhost.c
index efd3103..f5ec140 100644
--- a/libusbhost/usbhost.c
+++ b/libusbhost/usbhost.c
@@ -144,6 +144,7 @@ void usb_host_cleanup(struct usb_host_context *context)
void usb_host_run(struct usb_host_context *context,
usb_device_added_cb added_cb,
usb_device_removed_cb removed_cb,
+ usb_discovery_done_cb discovery_done_cb,
void *client_data)
{
struct inotify_event* event;
@@ -174,6 +175,8 @@ void usb_host_run(struct usb_host_context *context,
/* check for existing devices first, after we have inotify set up */
done = find_existing_devices(added_cb, removed_cb, client_data);
+ if (discovery_done_cb)
+ done |= discovery_done_cb(client_data);
while (!done) {
ret = read(context->fd, event_buf, sizeof(event_buf));