module Bindings.Libusb.Synchronous where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.Libusb.HandlingAndEnumeration
foreign import ccall "libusb_control_transfer" c'libusb_control_transfer
:: Ptr C'libusb_device_handle -> Word8 -> Word8 -> Word16 -> Word16 -> Ptr CUChar -> Word16 -> CUInt -> IO CInt
foreign import ccall "&libusb_control_transfer" p'libusb_control_transfer
:: FunPtr (Ptr C'libusb_device_handle -> Word8 -> Word8 -> Word16 -> Word16 -> Ptr CUChar -> Word16 -> CUInt -> IO CInt)
foreign import ccall "libusb_bulk_transfer" c'libusb_bulk_transfer
:: Ptr C'libusb_device_handle -> CUChar -> Ptr CUChar -> CInt -> Ptr CInt -> CUInt -> IO CInt
foreign import ccall "&libusb_bulk_transfer" p'libusb_bulk_transfer
:: FunPtr (Ptr C'libusb_device_handle -> CUChar -> Ptr CUChar -> CInt -> Ptr CInt -> CUInt -> IO CInt)
foreign import ccall "libusb_interrupt_transfer" c'libusb_interrupt_transfer
:: Ptr C'libusb_device_handle -> CUChar -> Ptr CUChar -> CInt -> Ptr CInt -> CUInt -> IO CInt
foreign import ccall "&libusb_interrupt_transfer" p'libusb_interrupt_transfer
:: FunPtr (Ptr C'libusb_device_handle -> CUChar -> Ptr CUChar -> CInt -> Ptr CInt -> CUInt -> IO CInt)