{-# LINE 1 "library/Memfd/CreateFlags.hsc" #-}
module Memfd.CreateFlags where

import Data.Maybe (Maybe (..))
import Memfd.CreateFlagsType (CreateFlags (..))
import Memfd.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 17 "library/Memfd/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 25 "library/Memfd/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 30 "library/Memfd/CreateFlags.hsc" #-}

{-| Used in conjunction with 'hugeTLB' to select alternative hugeTLB page sizes
-}
hugeTLBSize :: HugeTLBSize -> Maybe CreateFlags

hugeTLBSize :: HugeTLBSize -> Maybe CreateFlags
hugeTLBSize HugeTLBSize
HugeTLB_64KB =

{-# LINE 37 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1073741824))
{-# LINE 38 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 41 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_512KB =

{-# LINE 44 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1275068416))
{-# LINE 45 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 48 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_1MB =

{-# LINE 51 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1342177280))
{-# LINE 52 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 55 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_2MB =

{-# LINE 58 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1409286144))
{-# LINE 59 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 62 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_8MB =

{-# LINE 65 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1543503872))
{-# LINE 66 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 69 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_16MB =

{-# LINE 72 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1610612736))
{-# LINE 73 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 76 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_32MB =

{-# LINE 79 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1677721600))
{-# LINE 80 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 83 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_256MB =

{-# LINE 86 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1879048192))
{-# LINE 87 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 90 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_512MB =

{-# LINE 93 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (1946157056))
{-# LINE 94 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 97 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_1GB =

{-# LINE 100 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (2013265920))
{-# LINE 101 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 104 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_2GB =

{-# LINE 107 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (2080374784))
{-# LINE 108 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 111 "library/Memfd/CreateFlags.hsc" #-}

hugeTLBSize HugeTLBSize
HugeTLB_16GB =

{-# LINE 114 "library/Memfd/CreateFlags.hsc" #-}
    Just (CreateFlags (-2013265920))
{-# LINE 115 "library/Memfd/CreateFlags.hsc" #-}

{-# LINE 118 "library/Memfd/CreateFlags.hsc" #-}