{-# LINE 1 "src/Bindings/Posix/Mqueue.hsc" #-}
module Bindings.Posix.Mqueue 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 8 "src/Bindings/Posix/Mqueue.hsc" #-}
import Bindings.Posix.Signal
import Bindings.Posix.Sys.Types
import Bindings.Posix.Time
type C'mqd_t = CInt
{-# LINE 13 "src/Bindings/Posix/Mqueue.hsc" #-}
{-# LINE 15 "src/Bindings/Posix/Mqueue.hsc" #-}
{-# LINE 16 "src/Bindings/Posix/Mqueue.hsc" #-}
{-# LINE 17 "src/Bindings/Posix/Mqueue.hsc" #-}
{-# LINE 18 "src/Bindings/Posix/Mqueue.hsc" #-}
{-# LINE 19 "src/Bindings/Posix/Mqueue.hsc" #-}
data C'mq_attr = C'mq_attr{
c'mq_attr'mq_flags :: CLong,
c'mq_attr'mq_maxmsg :: CLong,
c'mq_attr'mq_msgsize :: CLong,
c'mq_attr'mq_curmsgs :: CLong
} deriving (Eq,Show)
p'mq_attr'mq_flags p = plusPtr p 0
p'mq_attr'mq_flags :: Ptr (C'mq_attr) -> Ptr (CLong)
p'mq_attr'mq_maxmsg p = plusPtr p 8
p'mq_attr'mq_maxmsg :: Ptr (C'mq_attr) -> Ptr (CLong)
p'mq_attr'mq_msgsize p = plusPtr p 16
p'mq_attr'mq_msgsize :: Ptr (C'mq_attr) -> Ptr (CLong)
p'mq_attr'mq_curmsgs p = plusPtr p 24
p'mq_attr'mq_curmsgs :: Ptr (C'mq_attr) -> Ptr (CLong)
instance Storable C'mq_attr where
sizeOf _ = 64
alignment _ = 8
peek _p = do
v0 <- peekByteOff _p 0
v1 <- peekByteOff _p 8
v2 <- peekByteOff _p 16
v3 <- peekByteOff _p 24
return $ C'mq_attr v0 v1 v2 v3
poke _p (C'mq_attr v0 v1 v2 v3) = do
pokeByteOff _p 0 v0
pokeByteOff _p 8 v1
pokeByteOff _p 16 v2
pokeByteOff _p 24 v3
return ()
{-# LINE 20 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_close" c'mq_close
:: C'mqd_t -> IO CInt
foreign import ccall "&mq_close" p'mq_close
:: FunPtr (C'mqd_t -> IO CInt)
{-# LINE 22 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_getattr" c'mq_getattr
:: C'mqd_t -> Ptr C'mq_attr -> IO CInt
foreign import ccall "&mq_getattr" p'mq_getattr
:: FunPtr (C'mqd_t -> Ptr C'mq_attr -> IO CInt)
{-# LINE 23 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_notify" c'mq_notify
:: C'mqd_t -> Ptr C'sigevent -> IO CInt
foreign import ccall "&mq_notify" p'mq_notify
:: FunPtr (C'mqd_t -> Ptr C'sigevent -> IO CInt)
{-# LINE 24 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_open" c'mq_open
:: Ptr CChar -> CInt -> C'mode_t -> Ptr C'mq_attr -> IO C'mqd_t
foreign import ccall "&mq_open" p'mq_open
:: FunPtr (Ptr CChar -> CInt -> C'mode_t -> Ptr C'mq_attr -> IO C'mqd_t)
{-# LINE 25 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_receive" c'mq_receive
:: C'mqd_t -> Ptr CChar -> C'size_t -> Ptr CUInt -> IO C'ssize_t
foreign import ccall "&mq_receive" p'mq_receive
:: FunPtr (C'mqd_t -> Ptr CChar -> C'size_t -> Ptr CUInt -> IO C'ssize_t)
{-# LINE 26 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_send" c'mq_send
:: C'mqd_t -> Ptr C'mq_attr -> C'size_t -> CUInt -> IO CInt
foreign import ccall "&mq_send" p'mq_send
:: FunPtr (C'mqd_t -> Ptr C'mq_attr -> C'size_t -> CUInt -> IO CInt)
{-# LINE 27 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_setattr" c'mq_setattr
:: C'mqd_t -> Ptr C'mq_attr -> Ptr C'mq_attr -> IO CInt
foreign import ccall "&mq_setattr" p'mq_setattr
:: FunPtr (C'mqd_t -> Ptr C'mq_attr -> Ptr C'mq_attr -> IO CInt)
{-# LINE 28 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_timedreceive" c'mq_timedreceive
:: C'mqd_t -> Ptr CChar -> C'size_t -> Ptr CUInt -> Ptr C'timespec -> IO C'ssize_t
foreign import ccall "&mq_timedreceive" p'mq_timedreceive
:: FunPtr (C'mqd_t -> Ptr CChar -> C'size_t -> Ptr CUInt -> Ptr C'timespec -> IO C'ssize_t)
{-# LINE 29 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_timedsend" c'mq_timedsend
:: C'mqd_t -> Ptr CChar -> C'size_t -> CUInt -> Ptr C'timespec -> IO CInt
foreign import ccall "&mq_timedsend" p'mq_timedsend
:: FunPtr (C'mqd_t -> Ptr CChar -> C'size_t -> CUInt -> Ptr C'timespec -> IO CInt)
{-# LINE 30 "src/Bindings/Posix/Mqueue.hsc" #-}
foreign import ccall "mq_unlink" c'mq_unlink
:: Ptr CChar -> IO CInt
foreign import ccall "&mq_unlink" p'mq_unlink
:: FunPtr (Ptr CChar -> IO CInt)
{-# LINE 31 "src/Bindings/Posix/Mqueue.hsc" #-}