openusb_set_event_callback, openusb_coldplug_callbacks_done

Name

openusb_set_event_callback, openusb_coldplug_callbacks_done -- Set event callbacks or Waiting for coldplug events completion

Synopsis

int32_t openusb_set_event_callback(openusb_handle_t handle , openusb_event_t type , openusb_event_callback_t callback , void *arg );

void openusb_coldplug_callbacks_done(openusb_handle_t handle);

Parameters

handle - An openusb instance handle, obtained in openusb_init.

type - Event type.

callback - Pointer to callback function.

arg - Arguments passed to callback

Description

Application can call openusb_set_event_callback() to register with openusb for events and corresponding callbacks. When these events occur, the callback will be called with arg, if any, as the parameter.

The supported events type:

    
          typedef enum openusb_event {
                USB_ATTACH = 0,     /* attachment of device */
                USB_REMOVE,         /* detachment of device */
                USB_SUSPEND,        /* device suspend */
                USB_RESUME,         /* device resume */
                USB_HC_ATTACH,      /* host controller attachment */
                USB_HC_REMOVE,      /* host controller detachment */
                USB_COLDPLUG_COMPLETED, /* first scan of device completed */
          } openusb_event_t;
          

openusb_event_callback_t has this prototype:

    
          typedef void    (*openusb_event_callback_t)(openusb_handle_t handle,
              openusb_devid_t devid, openusb_event_t event, void *arg);
          

Application can call openusb_coldplug_callbacks_done() to block execution until end of coldplug events.

Return Value

openusb_set_event_callback returns 0 if succeed. Otherwise, a openusb error will be returned.

OPENUSB_SUCCESS - Callback was successfully set.

OPENUSB_BADARG - Invalid arguments, either invalid type or callback.

OPENUSB_INVALID_HANDLE - Invalid handle.

OPENUSB_NO_RESOURCES - Memory allocation failure.

See Also

openusb_init, openusb_fini