{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Core.TMutex.FFI where import Data.Word import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Core.TMutex.RawType import HROOT.Core.TMutex.RawType foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_CleanUp" c_tmutex_cleanup :: Ptr RawTMutex -> IO CInt foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_Factory" c_tmutex_factory :: Ptr RawTMutex -> CBool -> IO (Ptr RawTMutex) foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_Lock" c_tmutex_lock :: Ptr RawTMutex -> IO CInt foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_TryLock" c_tmutex_trylock :: Ptr RawTMutex -> IO CInt foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_UnLock" c_tmutex_unlock :: Ptr RawTMutex -> IO CInt foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_delete" c_tmutex_delete :: Ptr RawTMutex -> IO () foreign import ccall interruptible "HROOTCoreTMutex.h TMutex_newTMutex" c_tmutex_newtmutex :: CBool -> IO (Ptr RawTMutex)