{-# language DerivingStrategies #-}

module HugeTLBSizeType where

import Prelude (Eq, Ord, Enum, Bounded, Show)

data HugeTLBSize =
    HugeTLB_64KB
  | HugeTLB_512KB
  | HugeTLB_1MB
  | HugeTLB_2MB
  | HugeTLB_8MB
  | HugeTLB_16MB
  | HugeTLB_32MB
  | HugeTLB_256MB
  | HugeTLB_512MB
  | HugeTLB_1GB
  | HugeTLB_2GB
  | HugeTLB_16GB
  deriving stock (HugeTLBSize -> HugeTLBSize -> Bool
(HugeTLBSize -> HugeTLBSize -> Bool)
-> (HugeTLBSize -> HugeTLBSize -> Bool) -> Eq HugeTLBSize
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HugeTLBSize -> HugeTLBSize -> Bool
$c/= :: HugeTLBSize -> HugeTLBSize -> Bool
== :: HugeTLBSize -> HugeTLBSize -> Bool
$c== :: HugeTLBSize -> HugeTLBSize -> Bool
Eq, Eq HugeTLBSize
Eq HugeTLBSize
-> (HugeTLBSize -> HugeTLBSize -> Ordering)
-> (HugeTLBSize -> HugeTLBSize -> Bool)
-> (HugeTLBSize -> HugeTLBSize -> Bool)
-> (HugeTLBSize -> HugeTLBSize -> Bool)
-> (HugeTLBSize -> HugeTLBSize -> Bool)
-> (HugeTLBSize -> HugeTLBSize -> HugeTLBSize)
-> (HugeTLBSize -> HugeTLBSize -> HugeTLBSize)
-> Ord HugeTLBSize
HugeTLBSize -> HugeTLBSize -> Bool
HugeTLBSize -> HugeTLBSize -> Ordering
HugeTLBSize -> HugeTLBSize -> HugeTLBSize
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: HugeTLBSize -> HugeTLBSize -> HugeTLBSize
$cmin :: HugeTLBSize -> HugeTLBSize -> HugeTLBSize
max :: HugeTLBSize -> HugeTLBSize -> HugeTLBSize
$cmax :: HugeTLBSize -> HugeTLBSize -> HugeTLBSize
>= :: HugeTLBSize -> HugeTLBSize -> Bool
$c>= :: HugeTLBSize -> HugeTLBSize -> Bool
> :: HugeTLBSize -> HugeTLBSize -> Bool
$c> :: HugeTLBSize -> HugeTLBSize -> Bool
<= :: HugeTLBSize -> HugeTLBSize -> Bool
$c<= :: HugeTLBSize -> HugeTLBSize -> Bool
< :: HugeTLBSize -> HugeTLBSize -> Bool
$c< :: HugeTLBSize -> HugeTLBSize -> Bool
compare :: HugeTLBSize -> HugeTLBSize -> Ordering
$ccompare :: HugeTLBSize -> HugeTLBSize -> Ordering
$cp1Ord :: Eq HugeTLBSize
Ord, Int -> HugeTLBSize
HugeTLBSize -> Int
HugeTLBSize -> [HugeTLBSize]
HugeTLBSize -> HugeTLBSize
HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
HugeTLBSize -> HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
(HugeTLBSize -> HugeTLBSize)
-> (HugeTLBSize -> HugeTLBSize)
-> (Int -> HugeTLBSize)
-> (HugeTLBSize -> Int)
-> (HugeTLBSize -> [HugeTLBSize])
-> (HugeTLBSize -> HugeTLBSize -> [HugeTLBSize])
-> (HugeTLBSize -> HugeTLBSize -> [HugeTLBSize])
-> (HugeTLBSize -> HugeTLBSize -> HugeTLBSize -> [HugeTLBSize])
-> Enum HugeTLBSize
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: HugeTLBSize -> HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
$cenumFromThenTo :: HugeTLBSize -> HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
enumFromTo :: HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
$cenumFromTo :: HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
enumFromThen :: HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
$cenumFromThen :: HugeTLBSize -> HugeTLBSize -> [HugeTLBSize]
enumFrom :: HugeTLBSize -> [HugeTLBSize]
$cenumFrom :: HugeTLBSize -> [HugeTLBSize]
fromEnum :: HugeTLBSize -> Int
$cfromEnum :: HugeTLBSize -> Int
toEnum :: Int -> HugeTLBSize
$ctoEnum :: Int -> HugeTLBSize
pred :: HugeTLBSize -> HugeTLBSize
$cpred :: HugeTLBSize -> HugeTLBSize
succ :: HugeTLBSize -> HugeTLBSize
$csucc :: HugeTLBSize -> HugeTLBSize
Enum, HugeTLBSize
HugeTLBSize -> HugeTLBSize -> Bounded HugeTLBSize
forall a. a -> a -> Bounded a
maxBound :: HugeTLBSize
$cmaxBound :: HugeTLBSize
minBound :: HugeTLBSize
$cminBound :: HugeTLBSize
Bounded, Int -> HugeTLBSize -> ShowS
[HugeTLBSize] -> ShowS
HugeTLBSize -> String
(Int -> HugeTLBSize -> ShowS)
-> (HugeTLBSize -> String)
-> ([HugeTLBSize] -> ShowS)
-> Show HugeTLBSize
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HugeTLBSize] -> ShowS
$cshowList :: [HugeTLBSize] -> ShowS
show :: HugeTLBSize -> String
$cshow :: HugeTLBSize -> String
showsPrec :: Int -> HugeTLBSize -> ShowS
$cshowsPrec :: Int -> HugeTLBSize -> ShowS
Show)

-- ^ These sizes may not all be available on your platform. See 'Memfd.supportedHugeTLBSizes'.