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
data C'libusb_device_handle = C'libusb_device_handle
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 )
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 ())
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)
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)
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)
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 ))
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 ())
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)
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 ))
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 ())
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 ))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)