{-# INCLUDE <bindings.macros.h> #-}
{-# INCLUDE <libusb.h> #-}
{-# LINE 1 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 2 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 3 "src/Bindings/Libusb/Descriptors.hsc" #-}

-- | <http://libusb.sourceforge.net/api-1.0/group__desc.html>

module Bindings.Libusb.Descriptors where
import Foreign
import Foreign.C
import Bindings.Libusb.HandlingAndEnumeration


{-# LINE 12 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 13 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 14 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 15 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 16 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 17 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 18 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 19 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 20 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 21 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 22 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 23 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 24 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 25 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 26 "src/Bindings/Libusb/Descriptors.hsc" #-}
data C'libusb_device_descriptor = C'libusb_device_descriptor {libusb_device_descriptor'bLength :: Word8 , libusb_device_descriptor'bDescriptorType :: Word8 , libusb_device_descriptor'bcdUSB :: Word16 , libusb_device_descriptor'bDeviceClass :: Word8 , libusb_device_descriptor'bDeviceSubClass :: Word8 , libusb_device_descriptor'bDeviceProtocol :: Word8 , libusb_device_descriptor'bMaxPacketSize0 :: Word8 , libusb_device_descriptor'idVendor :: Word16 , libusb_device_descriptor'idProduct :: Word16 , libusb_device_descriptor'bcdDevice :: Word16 , libusb_device_descriptor'iManufacturer :: Word8 , libusb_device_descriptor'iProduct :: Word8 , libusb_device_descriptor'iSerialNumber :: Word8 , libusb_device_descriptor'bNumConfigurations :: Word8}
instance Storable C'libusb_device_descriptor where
 sizeOf _ = 18
 alignment = sizeOf
 peek p = do
  v0 <- peekByteOff p 0
  v1 <- peekByteOff p 1
  v2 <- peekByteOff p 2
  v3 <- peekByteOff p 4
  v4 <- peekByteOff p 5
  v5 <- peekByteOff p 6
  v6 <- peekByteOff p 7
  v7 <- peekByteOff p 8
  v8 <- peekByteOff p 10
  v9 <- peekByteOff p 12
  v10 <- peekByteOff p 14
  v11 <- peekByteOff p 15
  v12 <- peekByteOff p 16
  v13 <- peekByteOff p 17
  return $ C'libusb_device_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
 poke p (C'libusb_device_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13  ) = do
  pokeByteOff p 0 v0
  pokeByteOff p 1 v1
  pokeByteOff p 2 v2
  pokeByteOff p 4 v3
  pokeByteOff p 5 v4
  pokeByteOff p 6 v5
  pokeByteOff p 7 v6
  pokeByteOff p 8 v7
  pokeByteOff p 10 v8
  pokeByteOff p 12 v9
  pokeByteOff p 14 v10
  pokeByteOff p 15 v11
  pokeByteOff p 16 v12
  pokeByteOff p 17 v13
  return ()

{-# LINE 27 "src/Bindings/Libusb/Descriptors.hsc" #-}


{-# LINE 29 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 30 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 31 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 32 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 33 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 34 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 35 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 36 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 37 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 38 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 39 "src/Bindings/Libusb/Descriptors.hsc" #-}
data C'libusb_endpoint_descriptor = C'libusb_endpoint_descriptor {libusb_endpoint_descriptor'bLength :: Word8 , libusb_endpoint_descriptor'bDescriptorType :: Word8 , libusb_endpoint_descriptor'bEndpointAddress :: Word8 , libusb_endpoint_descriptor'bmAttributes :: Word8 , libusb_endpoint_descriptor'wMaxPacketSize :: Word16 , libusb_endpoint_descriptor'bInterval :: Word8 , libusb_endpoint_descriptor'bRefresh :: Word8 , libusb_endpoint_descriptor'bSynchAddress :: Word8 , libusb_endpoint_descriptor'extra :: Ptr CUChar , libusb_endpoint_descriptor'extra_length :: CInt}
instance Storable C'libusb_endpoint_descriptor where
 sizeOf _ = 20
 alignment = sizeOf
 peek p = do
  v0 <- peekByteOff p 0
  v1 <- peekByteOff p 1
  v2 <- peekByteOff p 2
  v3 <- peekByteOff p 3
  v4 <- peekByteOff p 4
  v5 <- peekByteOff p 6
  v6 <- peekByteOff p 7
  v7 <- peekByteOff p 8
  v8 <- peekByteOff p 12
  v9 <- peekByteOff p 16
  return $ C'libusb_endpoint_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9
 poke p (C'libusb_endpoint_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9  ) = do
  pokeByteOff p 0 v0
  pokeByteOff p 1 v1
  pokeByteOff p 2 v2
  pokeByteOff p 3 v3
  pokeByteOff p 4 v4
  pokeByteOff p 6 v5
  pokeByteOff p 7 v6
  pokeByteOff p 8 v7
  pokeByteOff p 12 v8
  pokeByteOff p 16 v9
  return ()

{-# LINE 40 "src/Bindings/Libusb/Descriptors.hsc" #-}


{-# LINE 42 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 43 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 44 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 45 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 46 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 47 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 48 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 49 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 50 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 51 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 52 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 53 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 54 "src/Bindings/Libusb/Descriptors.hsc" #-}
data C'libusb_interface_descriptor = C'libusb_interface_descriptor {libusb_interface_descriptor'bLength :: Word8 , libusb_interface_descriptor'bDescriptorType :: Word8 , libusb_interface_descriptor'bInterfaceNumber :: Word8 , libusb_interface_descriptor'bAlternateSetting :: Word8 , libusb_interface_descriptor'bNumEndpoints :: Word8 , libusb_interface_descriptor'bInterfaceClass :: Word8 , libusb_interface_descriptor'bInterfaceSubClass :: Word8 , libusb_interface_descriptor'bInterfaceProtocol :: Word8 , libusb_interface_descriptor'iInterface :: Word8 , libusb_interface_descriptor'endpoint :: Ptr  C'libusb_endpoint_descriptor  , libusb_interface_descriptor'extra :: Ptr CUChar , libusb_interface_descriptor'extra_length :: CInt}
instance Storable C'libusb_interface_descriptor where
 sizeOf _ = 24
 alignment = sizeOf
 peek p = do
  v0 <- peekByteOff p 0
  v1 <- peekByteOff p 1
  v2 <- peekByteOff p 2
  v3 <- peekByteOff p 3
  v4 <- peekByteOff p 4
  v5 <- peekByteOff p 5
  v6 <- peekByteOff p 6
  v7 <- peekByteOff p 7
  v8 <- peekByteOff p 8
  v9 <- peekByteOff p 12
  v10 <- peekByteOff p 16
  v11 <- peekByteOff p 20
  return $ C'libusb_interface_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
 poke p (C'libusb_interface_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11  ) = do
  pokeByteOff p 0 v0
  pokeByteOff p 1 v1
  pokeByteOff p 2 v2
  pokeByteOff p 3 v3
  pokeByteOff p 4 v4
  pokeByteOff p 5 v5
  pokeByteOff p 6 v6
  pokeByteOff p 7 v7
  pokeByteOff p 8 v8
  pokeByteOff p 12 v9
  pokeByteOff p 16 v10
  pokeByteOff p 20 v11
  return ()

{-# LINE 55 "src/Bindings/Libusb/Descriptors.hsc" #-}


{-# LINE 57 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 58 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 59 "src/Bindings/Libusb/Descriptors.hsc" #-}
data C'libusb_interface = C'libusb_interface {libusb_interface'altsetting :: Ptr  C'libusb_interface_descriptor  , libusb_interface'num_altsetting :: CInt}
instance Storable C'libusb_interface where
 sizeOf _ = 8
 alignment = sizeOf
 peek p = do
  v0 <- peekByteOff p 0
  v1 <- peekByteOff p 4
  return $ C'libusb_interface v0 v1
 poke p (C'libusb_interface v0 v1  ) = do
  pokeByteOff p 0 v0
  pokeByteOff p 4 v1
  return ()

{-# LINE 60 "src/Bindings/Libusb/Descriptors.hsc" #-}


{-# LINE 62 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 63 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 64 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 65 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 66 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 67 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 68 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 69 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 70 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 71 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 72 "src/Bindings/Libusb/Descriptors.hsc" #-}

{-# LINE 73 "src/Bindings/Libusb/Descriptors.hsc" #-}
data C'libusb_config_descriptor = C'libusb_config_descriptor {libusb_config_descriptor'bLength :: Word8 , libusb_config_descriptor'bDescriptorType :: Word8 , libusb_config_descriptor'wTotalLength :: Word16 , libusb_config_descriptor'bNumInterfaces :: Word8 , libusb_config_descriptor'bConfigurationValue :: Word8 , libusb_config_descriptor'iConfiguration :: Word8 , libusb_config_descriptor'bmAttributes :: Word8 , libusb_config_descriptor'MaxPower :: Word8 , libusb_config_descriptor'interface :: Ptr  C'libusb_interface  , libusb_config_descriptor'extra :: Ptr CUChar , libusb_config_descriptor'extra_length :: CInt}
instance Storable C'libusb_config_descriptor where
 sizeOf _ = 24
 alignment = sizeOf
 peek p = do
  v0 <- peekByteOff p 0
  v1 <- peekByteOff p 1
  v2 <- peekByteOff p 2
  v3 <- peekByteOff p 4
  v4 <- peekByteOff p 5
  v5 <- peekByteOff p 6
  v6 <- peekByteOff p 7
  v7 <- peekByteOff p 8
  v8 <- peekByteOff p 12
  v9 <- peekByteOff p 16
  v10 <- peekByteOff p 20
  return $ C'libusb_config_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
 poke p (C'libusb_config_descriptor v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10  ) = do
  pokeByteOff p 0 v0
  pokeByteOff p 1 v1
  pokeByteOff p 2 v2
  pokeByteOff p 4 v3
  pokeByteOff p 5 v4
  pokeByteOff p 6 v5
  pokeByteOff p 7 v6
  pokeByteOff p 8 v7
  pokeByteOff p 12 v8
  pokeByteOff p 16 v9
  pokeByteOff p 20 v10
  return ()

{-# LINE 74 "src/Bindings/Libusb/Descriptors.hsc" #-}

type C'libusb_class_code = Word32

{-# LINE 76 "src/Bindings/Libusb/Descriptors.hsc" #-}

c'LIBUSB_CLASS_PER_INTERFACE = 0 ; c'LIBUSB_CLASS_PER_INTERFACE :: (Num a) => a

{-# LINE 78 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_AUDIO = 1 ; c'LIBUSB_CLASS_AUDIO :: (Num a) => a

{-# LINE 79 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_COMM = 2 ; c'LIBUSB_CLASS_COMM :: (Num a) => a

{-# LINE 80 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_HID = 3 ; c'LIBUSB_CLASS_HID :: (Num a) => a

{-# LINE 81 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_PRINTER = 7 ; c'LIBUSB_CLASS_PRINTER :: (Num a) => a

{-# LINE 82 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_PTP = 6 ; c'LIBUSB_CLASS_PTP :: (Num a) => a

{-# LINE 83 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_MASS_STORAGE = 8 ; c'LIBUSB_CLASS_MASS_STORAGE :: (Num a) => a

{-# LINE 84 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_HUB = 9 ; c'LIBUSB_CLASS_HUB :: (Num a) => a

{-# LINE 85 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_DATA = 10 ; c'LIBUSB_CLASS_DATA :: (Num a) => a

{-# LINE 86 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_CLASS_VENDOR_SPEC = 255 ; c'LIBUSB_CLASS_VENDOR_SPEC :: (Num a) => a

{-# LINE 87 "src/Bindings/Libusb/Descriptors.hsc" #-}

type C'libusb_descriptor_type = Word32

{-# LINE 89 "src/Bindings/Libusb/Descriptors.hsc" #-}

c'LIBUSB_DT_DEVICE = 1 ; c'LIBUSB_DT_DEVICE :: (Num a) => a

{-# LINE 91 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_CONFIG = 2 ; c'LIBUSB_DT_CONFIG :: (Num a) => a

{-# LINE 92 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_STRING = 3 ; c'LIBUSB_DT_STRING :: (Num a) => a

{-# LINE 93 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_INTERFACE = 4 ; c'LIBUSB_DT_INTERFACE :: (Num a) => a

{-# LINE 94 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_ENDPOINT = 5 ; c'LIBUSB_DT_ENDPOINT :: (Num a) => a

{-# LINE 95 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_HID = 33 ; c'LIBUSB_DT_HID :: (Num a) => a

{-# LINE 96 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_REPORT = 34 ; c'LIBUSB_DT_REPORT :: (Num a) => a

{-# LINE 97 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_PHYSICAL = 35 ; c'LIBUSB_DT_PHYSICAL :: (Num a) => a

{-# LINE 98 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_DT_HUB = 41 ; c'LIBUSB_DT_HUB :: (Num a) => a

{-# LINE 99 "src/Bindings/Libusb/Descriptors.hsc" #-}

type C'libusb_endpoint_direction = Word32

{-# LINE 101 "src/Bindings/Libusb/Descriptors.hsc" #-}

c'LIBUSB_ENDPOINT_IN = 128 ; c'LIBUSB_ENDPOINT_IN :: (Num a) => a

{-# LINE 103 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_ENDPOINT_OUT = 0 ; c'LIBUSB_ENDPOINT_OUT :: (Num a) => a

{-# LINE 104 "src/Bindings/Libusb/Descriptors.hsc" #-}

type C'libusb_transfer_type = Word32

{-# LINE 106 "src/Bindings/Libusb/Descriptors.hsc" #-}

c'LIBUSB_TRANSFER_TYPE_CONTROL = 0 ; c'LIBUSB_TRANSFER_TYPE_CONTROL :: (Num a) => a

{-# LINE 108 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_TRANSFER_TYPE_ISOCHRONOUS = 1 ; c'LIBUSB_TRANSFER_TYPE_ISOCHRONOUS :: (Num a) => a

{-# LINE 109 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_TRANSFER_TYPE_BULK = 2 ; c'LIBUSB_TRANSFER_TYPE_BULK :: (Num a) => a

{-# LINE 110 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_TRANSFER_TYPE_INTERRUPT = 3 ; c'LIBUSB_TRANSFER_TYPE_INTERRUPT :: (Num a) => a

{-# LINE 111 "src/Bindings/Libusb/Descriptors.hsc" #-}

type C'libusb_iso_sync_type = Word32

{-# LINE 113 "src/Bindings/Libusb/Descriptors.hsc" #-}

c'LIBUSB_ISO_SYNC_TYPE_NONE = 0 ; c'LIBUSB_ISO_SYNC_TYPE_NONE :: (Num a) => a

{-# LINE 115 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_ISO_SYNC_TYPE_ASYNC = 1 ; c'LIBUSB_ISO_SYNC_TYPE_ASYNC :: (Num a) => a

{-# LINE 116 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_ISO_SYNC_TYPE_ADAPTIVE = 2 ; c'LIBUSB_ISO_SYNC_TYPE_ADAPTIVE :: (Num a) => a

{-# LINE 117 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_ISO_SYNC_TYPE_SYNC = 3 ; c'LIBUSB_ISO_SYNC_TYPE_SYNC :: (Num a) => a

{-# LINE 118 "src/Bindings/Libusb/Descriptors.hsc" #-}

type C'libusb_iso_usage_type = Word32

{-# LINE 120 "src/Bindings/Libusb/Descriptors.hsc" #-}

c'LIBUSB_ISO_USAGE_TYPE_DATA = 0 ; c'LIBUSB_ISO_USAGE_TYPE_DATA :: (Num a) => a

{-# LINE 122 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1 ; c'LIBUSB_ISO_USAGE_TYPE_FEEDBACK :: (Num a) => a

{-# LINE 123 "src/Bindings/Libusb/Descriptors.hsc" #-}
c'LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2 ; c'LIBUSB_ISO_USAGE_TYPE_IMPLICIT :: (Num a) => a

{-# LINE 124 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "libusb_get_device_descriptor" c'libusb_get_device_descriptor :: Ptr  C'libusb_device  -> Ptr  C'libusb_device_descriptor  -> IO CInt
foreign import ccall "&libusb_get_device_descriptor" p'libusb_get_device_descriptor :: FunPtr (Ptr  C'libusb_device  -> Ptr  C'libusb_device_descriptor  -> IO CInt)

{-# LINE 127 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "libusb_get_active_config_descriptor" c'libusb_get_active_config_descriptor :: Ptr  C'libusb_device  -> Ptr (Ptr  C'libusb_config_descriptor ) -> IO CInt
foreign import ccall "&libusb_get_active_config_descriptor" p'libusb_get_active_config_descriptor :: FunPtr (Ptr  C'libusb_device  -> Ptr (Ptr  C'libusb_config_descriptor ) -> IO CInt)

{-# LINE 130 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "libusb_get_config_descriptor" c'libusb_get_config_descriptor :: Ptr  C'libusb_device  -> Word8 -> Ptr (Ptr  C'libusb_config_descriptor ) -> IO CInt
foreign import ccall "&libusb_get_config_descriptor" p'libusb_get_config_descriptor :: FunPtr (Ptr  C'libusb_device  -> Word8 -> Ptr (Ptr  C'libusb_config_descriptor ) -> IO CInt)

{-# LINE 133 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "libusb_get_config_descriptor_by_value" c'libusb_get_config_descriptor_by_value :: Ptr  C'libusb_device  -> Word8 -> Ptr (Ptr  C'libusb_config_descriptor ) -> IO CInt
foreign import ccall "&libusb_get_config_descriptor_by_value" p'libusb_get_config_descriptor_by_value :: FunPtr (Ptr  C'libusb_device  -> Word8 -> Ptr (Ptr  C'libusb_config_descriptor ) -> IO CInt)

{-# LINE 137 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "libusb_free_config_descriptor" c'libusb_free_config_descriptor :: Ptr  C'libusb_config_descriptor  -> IO ()
foreign import ccall "&libusb_free_config_descriptor" p'libusb_free_config_descriptor :: FunPtr (Ptr  C'libusb_config_descriptor  -> IO ())

{-# LINE 140 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "libusb_get_string_descriptor_ascii" c'libusb_get_string_descriptor_ascii :: Ptr  C'libusb_device_handle  -> Word8 -> Ptr CUChar -> CInt -> IO CInt
foreign import ccall "&libusb_get_string_descriptor_ascii" p'libusb_get_string_descriptor_ascii :: FunPtr (Ptr  C'libusb_device_handle  -> Word8 -> Ptr CUChar -> CInt -> IO CInt)

{-# LINE 143 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "inline_libusb_get_descriptor" c'libusb_get_descriptor :: Ptr  C'libusb_device_handle  -> Word8 -> Word8 -> Ptr CUChar -> CInt -> IO CInt

{-# LINE 147 "src/Bindings/Libusb/Descriptors.hsc" #-}

foreign import ccall "inline_libusb_get_string_descriptor" c'libusb_get_string_descriptor :: Ptr  C'libusb_device_handle  -> Word8 -> Word16 -> Ptr CUChar -> CInt -> IO CInt

{-# LINE 151 "src/Bindings/Libusb/Descriptors.hsc" #-}