{-# LINE 1 "CreateFlags.hsc" #-}
{-# language CPP #-}

module CreateFlags where

import CreateFlagsType (CreateFlags (..))
import HugeTLBSizeType (HugeTLBSize (..))



-- | Set the close-on-exec (@FD_CLOEXEC@) flag on the new file descriptor
--
-- By default, the new file descriptor is set to remain open across an @execve@ ("execute program") or @fork@ system call and is available to the child process. Use of this flag avoids leaking the file descriptor to child processes.
--
closeOnExec :: CreateFlags
closeOnExec :: CreateFlags
closeOnExec = CUInt -> CreateFlags
CreateFlags (CUInt
1)
{-# LINE 16 "CreateFlags.hsc" #-}

-- | Allow sealing operations on this file
--
-- The initial set of seals is empty. If this flag is not set, the initial set of seals will be @F_SEAL_SEAL@, meaning that no other seals can be set on the file.
--
allowSealing :: CreateFlags
allowSealing :: CreateFlags
allowSealing = CUInt -> CreateFlags
CreateFlags (CUInt
2)
{-# LINE 23 "CreateFlags.hsc" #-}

-- | The anonymous file will be created in the hugetlbfs filesystem using huge pages
hugeTLB :: CreateFlags
hugeTLB :: CreateFlags
hugeTLB = CUInt -> CreateFlags
CreateFlags (CUInt
4)
{-# LINE 27 "CreateFlags.hsc" #-}

-- | Used in conjunction with 'hugeTLB' to select alternative hugeTLB page sizes
hugeTLBSize :: HugeTLBSize -> CreateFlags
hugeTLBSize :: HugeTLBSize -> CreateFlags
hugeTLBSize HugeTLBSize
HugeTLB_64KB  = CUInt -> CreateFlags
CreateFlags (CUInt
1073741824)
{-# LINE 31 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_512KB = CreateFlags (1275068416)
{-# LINE 32 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_1MB   = CreateFlags (1342177280)
{-# LINE 33 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_2MB   = CreateFlags (1409286144)
{-# LINE 34 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_8MB   = CreateFlags (1543503872)
{-# LINE 35 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_16MB  = CreateFlags (1610612736)
{-# LINE 36 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_32MB  = CreateFlags (1677721600)
{-# LINE 37 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_256MB = CreateFlags (1879048192)
{-# LINE 38 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_512MB = CreateFlags (1946157056)
{-# LINE 39 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_1GB   = CreateFlags (2013265920)
{-# LINE 40 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_2GB   = CreateFlags (2080374784)
{-# LINE 41 "CreateFlags.hsc" #-}
hugeTLBSize HugeTLB_16GB  = CreateFlags (-2013265920)
{-# LINE 42 "CreateFlags.hsc" #-}