Lines Matching refs:ctx

102 int hotplug_callback(struct libusb_context *ctx, struct libusb_device *dev,
157 static int usbi_hotplug_match_cb (struct libusb_context *ctx,
186 return hotplug_cb->cb (ctx, dev, event, hotplug_cb->user_data);
189 void usbi_hotplug_match(struct libusb_context *ctx, struct libusb_device *dev,
195 usbi_mutex_lock(&ctx->hotplug_cbs_lock);
197 list_for_each_entry_safe(hotplug_cb, next, &ctx->hotplug_cbs, list, struct libusb_hotplug_callback) {
198 usbi_mutex_unlock(&ctx->hotplug_cbs_lock);
199 ret = usbi_hotplug_match_cb (ctx, dev, event, hotplug_cb);
200 usbi_mutex_lock(&ctx->hotplug_cbs_lock);
208 usbi_mutex_unlock(&ctx->hotplug_cbs_lock);
213 void usbi_hotplug_notification(struct libusb_context *ctx, struct libusb_device *dev,
220 usbi_err(ctx, "error allocating hotplug message");
229 usbi_mutex_lock(&ctx->event_data_lock);
230 pending_events = usbi_pending_events(ctx);
231 list_add_tail(&message->list, &ctx->hotplug_msgs);
233 usbi_signal_event(ctx);
234 usbi_mutex_unlock(&ctx->event_data_lock);
237 int API_EXPORTED libusb_hotplug_register_callback(libusb_context *ctx,
259 USBI_GET_CONTEXT(ctx);
266 new_callback->ctx = ctx;
276 usbi_mutex_lock(&ctx->hotplug_cbs_lock);
282 list_add(&new_callback->list, &ctx->hotplug_cbs);
284 usbi_mutex_unlock(&ctx->hotplug_cbs_lock);
291 len = (int) libusb_get_device_list(ctx, &devs);
293 libusb_hotplug_deregister_callback(ctx,
299 usbi_hotplug_match_cb(ctx, devs[i],
314 void API_EXPORTED libusb_hotplug_deregister_callback (struct libusb_context *ctx,
324 USBI_GET_CONTEXT(ctx);
326 usbi_mutex_lock(&ctx->hotplug_cbs_lock);
327 list_for_each_entry(hotplug_cb, &ctx->hotplug_cbs, list,
334 usbi_mutex_unlock(&ctx->hotplug_cbs_lock);
336 usbi_hotplug_notification(ctx, NULL, 0);
339 void usbi_hotplug_deregister_all(struct libusb_context *ctx) {
342 usbi_mutex_lock(&ctx->hotplug_cbs_lock);
343 list_for_each_entry_safe(hotplug_cb, next, &ctx->hotplug_cbs, list,
349 usbi_mutex_unlock(&ctx->hotplug_cbs_lock);