usb- Communicate with USB devices

MaintainerBas van Dijk <>



This module is not intended for end users. It provides internal and unsafe functions used for extending this package. It is primarily used by the usb-enumerator package.



type C'TransferFunc = Ptr C'libusb_device_handle -> CUChar -> Ptr CUChar -> CInt -> Ptr CInt -> CUInt -> IO CIntSource

Handy type synonym for the libusb transfer functions.

getDevHndlPtr :: DeviceHandle -> Ptr C'libusb_device_handleSource

Retrieve the pointer to the libusb device handle.

marshalEndpointAddress :: (Bits a, Num a) => EndpointAddress -> aSource

Marshal an EndpointAddress so that it can be used by the libusb transfer functions.

convertUSBException :: CInt -> USBExceptionSource

Convert a C'libusb_error to a USBException. If the C'libusb_error is unknown an error is thrown.