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

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

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

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

module Bindings.Libusb.HandlingAndEnumeration where
import Foreign
import Foreign.C
import Bindings.Posix.Sys.Types
import Bindings.Libusb.InitializationDeinitialization

data C'libusb_device = C'libusb_device

{-# LINE 13 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
data C'libusb_device_handle = C'libusb_device_handle

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

foreign import ccall "libusb_get_device_list" c'libusb_get_device_list :: Ptr  C'libusb_context  -> Ptr (Ptr (Ptr  C'libusb_device )) -> IO  C'ssize_t 
foreign import ccall "&libusb_get_device_list" p'libusb_get_device_list :: FunPtr (Ptr  C'libusb_context  -> Ptr (Ptr (Ptr  C'libusb_device )) -> IO  C'ssize_t )

{-# LINE 17 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_free_device_list" c'libusb_free_device_list :: Ptr (Ptr  C'libusb_device ) -> CInt -> IO ()
foreign import ccall "&libusb_free_device_list" p'libusb_free_device_list :: FunPtr (Ptr (Ptr  C'libusb_device ) -> CInt -> IO ())

{-# LINE 19 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_get_bus_number" c'libusb_get_bus_number :: Ptr  C'libusb_device  -> IO Word8
foreign import ccall "&libusb_get_bus_number" p'libusb_get_bus_number :: FunPtr (Ptr  C'libusb_device  -> IO Word8)

{-# LINE 20 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_get_device_address" c'libusb_get_device_address :: Ptr  C'libusb_device  -> IO Word8
foreign import ccall "&libusb_get_device_address" p'libusb_get_device_address :: FunPtr (Ptr  C'libusb_device  -> IO Word8)

{-# LINE 21 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_get_max_packet_size" c'libusb_get_max_packet_size :: Ptr  C'libusb_device  -> CUChar -> IO CInt
foreign import ccall "&libusb_get_max_packet_size" p'libusb_get_max_packet_size :: FunPtr (Ptr  C'libusb_device  -> CUChar -> IO CInt)

{-# LINE 23 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_ref_device" c'libusb_ref_device :: Ptr  C'libusb_device  -> IO (Ptr  C'libusb_device )
foreign import ccall "&libusb_ref_device" p'libusb_ref_device :: FunPtr (Ptr  C'libusb_device  -> IO (Ptr  C'libusb_device ))

{-# LINE 25 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_unref_device" c'libusb_unref_device :: Ptr  C'libusb_device  -> IO ()
foreign import ccall "&libusb_unref_device" p'libusb_unref_device :: FunPtr (Ptr  C'libusb_device  -> IO ())

{-# LINE 26 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_open" c'libusb_open :: Ptr  C'libusb_device  -> Ptr (Ptr  C'libusb_device_handle ) -> IO CInt
foreign import ccall "&libusb_open" p'libusb_open :: FunPtr (Ptr  C'libusb_device  -> Ptr (Ptr  C'libusb_device_handle ) -> IO CInt)

{-# LINE 28 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_open_device_with_vid_pid" c'libusb_open_device_with_vid_pid :: Ptr  C'libusb_context  -> Word16 -> Word16 -> IO (Ptr  C'libusb_device_handle )
foreign import ccall "&libusb_open_device_with_vid_pid" p'libusb_open_device_with_vid_pid :: FunPtr (Ptr  C'libusb_context  -> Word16 -> Word16 -> IO (Ptr  C'libusb_device_handle ))

{-# LINE 31 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_close" c'libusb_close :: Ptr  C'libusb_device_handle  -> IO ()
foreign import ccall "&libusb_close" p'libusb_close :: FunPtr (Ptr  C'libusb_device_handle  -> IO ())

{-# LINE 32 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_get_device" c'libusb_get_device :: Ptr  C'libusb_device_handle  -> IO (Ptr  C'libusb_device )
foreign import ccall "&libusb_get_device" p'libusb_get_device :: FunPtr (Ptr  C'libusb_device_handle  -> IO (Ptr  C'libusb_device ))

{-# LINE 34 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_get_configuration" c'libusb_get_configuration :: Ptr  C'libusb_device_handle  -> Ptr int -> IO CInt
foreign import ccall "&libusb_get_configuration" p'libusb_get_configuration :: FunPtr (Ptr  C'libusb_device_handle  -> Ptr int -> IO CInt)

{-# LINE 36 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_set_configuration" c'libusb_set_configuration :: Ptr  C'libusb_device_handle  -> CInt -> IO CInt
foreign import ccall "&libusb_set_configuration" p'libusb_set_configuration :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> IO CInt)

{-# LINE 38 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_claim_interface" c'libusb_claim_interface :: Ptr  C'libusb_device_handle  -> CInt -> IO CInt
foreign import ccall "&libusb_claim_interface" p'libusb_claim_interface :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> IO CInt)

{-# LINE 40 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_release_interface" c'libusb_release_interface :: Ptr  C'libusb_device_handle  -> CInt -> IO CInt
foreign import ccall "&libusb_release_interface" p'libusb_release_interface :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> IO CInt)

{-# LINE 42 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_set_interface_alt_setting" c'libusb_set_interface_alt_setting :: Ptr  C'libusb_device_handle  -> CInt -> CInt -> IO CInt
foreign import ccall "&libusb_set_interface_alt_setting" p'libusb_set_interface_alt_setting :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> CInt -> IO CInt)

{-# LINE 44 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_clear_halt" c'libusb_clear_halt :: Ptr  C'libusb_device_handle  -> CUChar -> IO CInt
foreign import ccall "&libusb_clear_halt" p'libusb_clear_halt :: FunPtr (Ptr  C'libusb_device_handle  -> CUChar -> IO CInt)

{-# LINE 46 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_reset_device" c'libusb_reset_device :: Ptr  C'libusb_device_handle  -> IO CInt
foreign import ccall "&libusb_reset_device" p'libusb_reset_device :: FunPtr (Ptr  C'libusb_device_handle  -> IO CInt)

{-# LINE 47 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_kernel_driver_active" c'libusb_kernel_driver_active :: Ptr  C'libusb_device_handle  -> CInt -> IO CInt
foreign import ccall "&libusb_kernel_driver_active" p'libusb_kernel_driver_active :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> IO CInt)

{-# LINE 49 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_detach_kernel_driver" c'libusb_detach_kernel_driver :: Ptr  C'libusb_device_handle  -> CInt -> IO CInt
foreign import ccall "&libusb_detach_kernel_driver" p'libusb_detach_kernel_driver :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> IO CInt)

{-# LINE 51 "src/Bindings/Libusb/HandlingAndEnumeration.hsc" #-}
foreign import ccall "libusb_attach_kernel_driver" c'libusb_attach_kernel_driver :: Ptr  C'libusb_device_handle  -> CInt -> IO CInt
foreign import ccall "&libusb_attach_kernel_driver" p'libusb_attach_kernel_driver :: FunPtr (Ptr  C'libusb_device_handle  -> CInt -> IO CInt)

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