{-# LINE 1 "src/Bindings/Posix/Sys/Mman.hsc" #-}

{-# LINE 2 "src/Bindings/Posix/Sys/Mman.hsc" #-}

{-# LINE 3 "src/Bindings/Posix/Sys/Mman.hsc" #-}

-- | <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_mman.h.html>

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

{-# LINE 8 "src/Bindings/Posix/Sys/Mman.hsc" #-}
import Bindings.Posix.Sys.Types

c'PROT_EXEC = 4
c'PROT_EXEC :: (Num a) => a

{-# LINE 11 "src/Bindings/Posix/Sys/Mman.hsc" #-}
c'PROT_NONE = 0
c'PROT_NONE :: (Num a) => a

{-# LINE 12 "src/Bindings/Posix/Sys/Mman.hsc" #-}
c'PROT_READ = 1
c'PROT_READ :: (Num a) => a

{-# LINE 13 "src/Bindings/Posix/Sys/Mman.hsc" #-}
c'PROT_WRITE = 2
c'PROT_WRITE :: (Num a) => a

{-# LINE 14 "src/Bindings/Posix/Sys/Mman.hsc" #-}
c'MAP_FIXED = 16
c'MAP_FIXED :: (Num a) => a

{-# LINE 15 "src/Bindings/Posix/Sys/Mman.hsc" #-}
c'MAP_PRIVATE = 2
c'MAP_PRIVATE :: (Num a) => a

{-# LINE 16 "src/Bindings/Posix/Sys/Mman.hsc" #-}
c'MAP_SHARED = 1
c'MAP_SHARED :: (Num a) => a

{-# LINE 17 "src/Bindings/Posix/Sys/Mman.hsc" #-}

c'MAP_FAILED = wordPtrToPtr 4294967295
c'MAP_FAILED :: Ptr a

{-# LINE 19 "src/Bindings/Posix/Sys/Mman.hsc" #-}

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 ()))

{-# LINE 21 "src/Bindings/Posix/Sys/Mman.hsc" #-}
foreign import ccall "mprotect" c'mprotect
  :: Ptr () -> CSize -> IO CInt
foreign import ccall "&mprotect" p'mprotect
  :: FunPtr (Ptr () -> CSize -> IO CInt)

{-# LINE 22 "src/Bindings/Posix/Sys/Mman.hsc" #-}
foreign import ccall "munmap" c'munmap
  :: Ptr () -> CSize -> IO CInt
foreign import ccall "&munmap" p'munmap
  :: FunPtr (Ptr () -> CSize -> IO CInt)

{-# LINE 23 "src/Bindings/Posix/Sys/Mman.hsc" #-}