{-# LINE 1 "src/Bindings/Libusb/Synchronous.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LINE 2 "src/Bindings/Libusb/Synchronous.hsc" #-}


{-# LINE 4 "src/Bindings/Libusb/Synchronous.hsc" #-}

{-# LINE 5 "src/Bindings/Libusb/Synchronous.hsc" #-}

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

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

{-# LINE 10 "src/Bindings/Libusb/Synchronous.hsc" #-}
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)

{-# LINE 15 "src/Bindings/Libusb/Synchronous.hsc" #-}
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)

{-# LINE 17 "src/Bindings/Libusb/Synchronous.hsc" #-}
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)

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