module Bindings.Libusb.Synchronous where
import Prelude (IO,Num,return,(.),($),Eq,Show,take)
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.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)