-- CPUFlagAction.hs ---

-- Copyright (C) 2020 Nerd Ed

-- Author: Nerd Ed <nerded.nerded@gmail.com>

-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU General Public License
-- as published by the Free Software Foundation; either version 3
-- of the License, or (at your option) any later version.

-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.

-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.

{-# LANGUAGE DerivingVia      #-}

module Zydis.CPUFlagAction
  ( CPUFlagAction(..)
  )
where

import           Zydis.Util

data CPUFlagAction
  = CPUFlagActionNone
  | CPUFlagActionTested
  | CPUFlagActionTestedModified
  | CPUFlagActionModified
  | CPUFlagActionSet0
  | CPUFlagActionSet1
  | CPUFlagActionUndefined
  deriving stock (Int -> CPUFlagAction -> ShowS
[CPUFlagAction] -> ShowS
CPUFlagAction -> String
(Int -> CPUFlagAction -> ShowS)
-> (CPUFlagAction -> String)
-> ([CPUFlagAction] -> ShowS)
-> Show CPUFlagAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CPUFlagAction] -> ShowS
$cshowList :: [CPUFlagAction] -> ShowS
show :: CPUFlagAction -> String
$cshow :: CPUFlagAction -> String
showsPrec :: Int -> CPUFlagAction -> ShowS
$cshowsPrec :: Int -> CPUFlagAction -> ShowS
Show, CPUFlagAction -> CPUFlagAction -> Bool
(CPUFlagAction -> CPUFlagAction -> Bool)
-> (CPUFlagAction -> CPUFlagAction -> Bool) -> Eq CPUFlagAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CPUFlagAction -> CPUFlagAction -> Bool
$c/= :: CPUFlagAction -> CPUFlagAction -> Bool
== :: CPUFlagAction -> CPUFlagAction -> Bool
$c== :: CPUFlagAction -> CPUFlagAction -> Bool
Eq, CPUFlagAction
CPUFlagAction -> CPUFlagAction -> Bounded CPUFlagAction
forall a. a -> a -> Bounded a
maxBound :: CPUFlagAction
$cmaxBound :: CPUFlagAction
minBound :: CPUFlagAction
$cminBound :: CPUFlagAction
Bounded, Int -> CPUFlagAction
CPUFlagAction -> Int
CPUFlagAction -> [CPUFlagAction]
CPUFlagAction -> CPUFlagAction
CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
CPUFlagAction -> CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
(CPUFlagAction -> CPUFlagAction)
-> (CPUFlagAction -> CPUFlagAction)
-> (Int -> CPUFlagAction)
-> (CPUFlagAction -> Int)
-> (CPUFlagAction -> [CPUFlagAction])
-> (CPUFlagAction -> CPUFlagAction -> [CPUFlagAction])
-> (CPUFlagAction -> CPUFlagAction -> [CPUFlagAction])
-> (CPUFlagAction
    -> CPUFlagAction -> CPUFlagAction -> [CPUFlagAction])
-> Enum CPUFlagAction
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 :: CPUFlagAction -> CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
$cenumFromThenTo :: CPUFlagAction -> CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
enumFromTo :: CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
$cenumFromTo :: CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
enumFromThen :: CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
$cenumFromThen :: CPUFlagAction -> CPUFlagAction -> [CPUFlagAction]
enumFrom :: CPUFlagAction -> [CPUFlagAction]
$cenumFrom :: CPUFlagAction -> [CPUFlagAction]
fromEnum :: CPUFlagAction -> Int
$cfromEnum :: CPUFlagAction -> Int
toEnum :: Int -> CPUFlagAction
$ctoEnum :: Int -> CPUFlagAction
pred :: CPUFlagAction -> CPUFlagAction
$cpred :: CPUFlagAction -> CPUFlagAction
succ :: CPUFlagAction -> CPUFlagAction
$csucc :: CPUFlagAction -> CPUFlagAction
Enum)
  deriving Ptr b -> Int -> IO CPUFlagAction
Ptr b -> Int -> CPUFlagAction -> IO ()
Ptr CPUFlagAction -> IO CPUFlagAction
Ptr CPUFlagAction -> Int -> IO CPUFlagAction
Ptr CPUFlagAction -> Int -> CPUFlagAction -> IO ()
Ptr CPUFlagAction -> CPUFlagAction -> IO ()
CPUFlagAction -> Int
(CPUFlagAction -> Int)
-> (CPUFlagAction -> Int)
-> (Ptr CPUFlagAction -> Int -> IO CPUFlagAction)
-> (Ptr CPUFlagAction -> Int -> CPUFlagAction -> IO ())
-> (forall b. Ptr b -> Int -> IO CPUFlagAction)
-> (forall b. Ptr b -> Int -> CPUFlagAction -> IO ())
-> (Ptr CPUFlagAction -> IO CPUFlagAction)
-> (Ptr CPUFlagAction -> CPUFlagAction -> IO ())
-> Storable CPUFlagAction
forall b. Ptr b -> Int -> IO CPUFlagAction
forall b. Ptr b -> Int -> CPUFlagAction -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr CPUFlagAction -> CPUFlagAction -> IO ()
$cpoke :: Ptr CPUFlagAction -> CPUFlagAction -> IO ()
peek :: Ptr CPUFlagAction -> IO CPUFlagAction
$cpeek :: Ptr CPUFlagAction -> IO CPUFlagAction
pokeByteOff :: Ptr b -> Int -> CPUFlagAction -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> CPUFlagAction -> IO ()
peekByteOff :: Ptr b -> Int -> IO CPUFlagAction
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CPUFlagAction
pokeElemOff :: Ptr CPUFlagAction -> Int -> CPUFlagAction -> IO ()
$cpokeElemOff :: Ptr CPUFlagAction -> Int -> CPUFlagAction -> IO ()
peekElemOff :: Ptr CPUFlagAction -> Int -> IO CPUFlagAction
$cpeekElemOff :: Ptr CPUFlagAction -> Int -> IO CPUFlagAction
alignment :: CPUFlagAction -> Int
$calignment :: CPUFlagAction -> Int
sizeOf :: CPUFlagAction -> Int
$csizeOf :: CPUFlagAction -> Int
Storable via StorableExt CPUFlagAction