module Bindings.Posix.Sys.Mman 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.Posix.Sys.Types
c'PROT_EXEC = 4
c'PROT_EXEC :: (Num a) => a
c'PROT_NONE = 0
c'PROT_NONE :: (Num a) => a
c'PROT_READ = 1
c'PROT_READ :: (Num a) => a
c'PROT_WRITE = 2
c'PROT_WRITE :: (Num a) => a
c'MAP_FIXED = 16
c'MAP_FIXED :: (Num a) => a
c'MAP_PRIVATE = 2
c'MAP_PRIVATE :: (Num a) => a
c'MAP_SHARED = 1
c'MAP_SHARED :: (Num a) => a
c'MAP_FAILED = wordPtrToPtr 4294967295
c'MAP_FAILED :: Ptr a
foreign import ccall "mmap" c'mmap
:: Ptr () -> CSize -> CInt -> CInt-> CInt-> C'off_t -> IO (Ptr ())
foreign import ccall "&mmap" p'mmap
:: FunPtr (Ptr () -> CSize -> CInt -> CInt-> CInt-> C'off_t -> IO (Ptr ()))
foreign import ccall "mprotect" c'mprotect
:: Ptr () -> CSize -> IO CInt
foreign import ccall "&mprotect" p'mprotect
:: FunPtr (Ptr () -> CSize -> IO CInt)
foreign import ccall "munmap" c'munmap
:: Ptr () -> CSize -> IO CInt
foreign import ccall "&munmap" p'munmap
:: FunPtr (Ptr () -> CSize -> IO CInt)