#endif
struct sr_context {
+ struct sr_dev_driver **driver_list;
#ifdef HAVE_LIBUSB_1_0
libusb_context *libusb_ctx;
gboolean usb_source_present;
#ifdef _WIN32
GThread *usb_thread;
gboolean usb_thread_running;
- GMutex usb_mutex;
- HANDLE usb_event;
+ HANDLE usb_wait_request_event;
+ HANDLE usb_wait_complete_event;
GPollFD usb_pollfd;
sr_receive_data_callback usb_cb;
void *usb_cb_data;
/*--- hwdriver.c ------------------------------------------------------------*/
+extern SR_PRIV struct sr_dev_driver **drivers_lists[];
+
SR_PRIV const GVariantType *sr_variant_type_get(int datatype);
SR_PRIV int sr_variant_type_check(uint32_t key, GVariant *data);
-SR_PRIV void sr_hw_cleanup_all(void);
+SR_PRIV void sr_hw_cleanup_all(const struct sr_context *ctx);
SR_PRIV struct sr_config *sr_config_new(uint32_t key, GVariant *data);
SR_PRIV void sr_config_free(struct sr_config *src);
SR_PRIV int sr_source_remove(int fd);
/*--- session.c -------------------------------------------------------------*/
struct sr_session {
+ /** Context this session exists in. */
+ struct sr_context *ctx;
/** List of struct sr_dev_inst pointers. */
GSList *devs;
/** List of struct sr_dev_inst pointers owned by this session. */