{-# LANGUAGE DerivingStrategies #-}
module Zydis.Status
( ZyanCoreStatus(..)
, ZydisStatus(..)
, ZyanStatus
, ZyanNativeStatus
, fromZyanNativeStatus
)
where
import Data.Bits
import Data.Word
data ZyanCoreStatus
= ZyanCoreStatusSuccess
| ZyanCoreStatusFailed
| ZyanCoreStatusTrue
| ZyanCoreStatusFalse
| ZyanCoreStatusInvalidArgument
| ZyanCoreStatusInvalidOperation
| ZyanCoreStatusAccessDenied
| ZyanCoreStatusNotFound
| ZyanCoreStatusOutOfRange
| ZyanCoreStatusInsufficientBufferSize
| ZyanCoreStatusNotEnoughMemory
| ZyanCoreStatusBadSystemCall
| ZyanCoreStatusOutOfResources
| ZyanCoreStatusMissingDependency
deriving stock (Int -> ZyanCoreStatus -> ShowS
[ZyanCoreStatus] -> ShowS
ZyanCoreStatus -> String
(Int -> ZyanCoreStatus -> ShowS)
-> (ZyanCoreStatus -> String)
-> ([ZyanCoreStatus] -> ShowS)
-> Show ZyanCoreStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ZyanCoreStatus] -> ShowS
$cshowList :: [ZyanCoreStatus] -> ShowS
show :: ZyanCoreStatus -> String
$cshow :: ZyanCoreStatus -> String
showsPrec :: Int -> ZyanCoreStatus -> ShowS
$cshowsPrec :: Int -> ZyanCoreStatus -> ShowS
Show, ZyanCoreStatus -> ZyanCoreStatus -> Bool
(ZyanCoreStatus -> ZyanCoreStatus -> Bool)
-> (ZyanCoreStatus -> ZyanCoreStatus -> Bool) -> Eq ZyanCoreStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ZyanCoreStatus -> ZyanCoreStatus -> Bool
$c/= :: ZyanCoreStatus -> ZyanCoreStatus -> Bool
== :: ZyanCoreStatus -> ZyanCoreStatus -> Bool
$c== :: ZyanCoreStatus -> ZyanCoreStatus -> Bool
Eq)
data ZydisStatus
= ZydisStatusInvalidMask
| ZydisStatusMalformedMvex
| ZydisStatusMalformedEvex
| ZydisStatusInvalidMap
| ZydisStatusIllegalRex
| ZydisStatusIllegalLegacyPFX
| ZydisStatusIllegalLock
| ZydisStatusBadRegister
| ZydisStatusInstructionTooLong
| ZydisStatusNoMoreData
| ZydisStatusDecodingError
| ZydisStatusSkipToken
deriving stock (Int -> ZydisStatus -> ShowS
[ZydisStatus] -> ShowS
ZydisStatus -> String
(Int -> ZydisStatus -> ShowS)
-> (ZydisStatus -> String)
-> ([ZydisStatus] -> ShowS)
-> Show ZydisStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ZydisStatus] -> ShowS
$cshowList :: [ZydisStatus] -> ShowS
show :: ZydisStatus -> String
$cshow :: ZydisStatus -> String
showsPrec :: Int -> ZydisStatus -> ShowS
$cshowsPrec :: Int -> ZydisStatus -> ShowS
Show, ZydisStatus -> ZydisStatus -> Bool
(ZydisStatus -> ZydisStatus -> Bool)
-> (ZydisStatus -> ZydisStatus -> Bool) -> Eq ZydisStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ZydisStatus -> ZydisStatus -> Bool
$c/= :: ZydisStatus -> ZydisStatus -> Bool
== :: ZydisStatus -> ZydisStatus -> Bool
$c== :: ZydisStatus -> ZydisStatus -> Bool
Eq)
type ZyanStatus = Either ZyanCoreStatus ZydisStatus
type IsError = Bool
type ZyanNativeModule = Word16
type ZyanNativeStatusCode = Word32
type ZyanNativeStatus = Word32
makeZyanNativeStatus
:: IsError -> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatus
makeZyanNativeStatus :: Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
e ZyanNativeModule
m ZyanNativeStatusCode
c =
((if Bool
e then ZyanNativeStatusCode
1 else ZyanNativeStatusCode
0) ZyanNativeStatusCode -> Int -> ZyanNativeStatusCode
forall a. Bits a => a -> Int -> a
`shiftL` Int
31)
ZyanNativeStatusCode
-> ZyanNativeStatusCode -> ZyanNativeStatusCode
forall a. Bits a => a -> a -> a
.|. ((ZyanNativeModule -> ZyanNativeStatusCode
forall a b. (Integral a, Num b) => a -> b
fromIntegral ZyanNativeModule
m ZyanNativeStatusCode
-> ZyanNativeStatusCode -> ZyanNativeStatusCode
forall a. Bits a => a -> a -> a
.&. ZyanNativeStatusCode
0x7FF) ZyanNativeStatusCode -> Int -> ZyanNativeStatusCode
forall a. Bits a => a -> Int -> a
`shiftL` Int
20)
ZyanNativeStatusCode
-> ZyanNativeStatusCode -> ZyanNativeStatusCode
forall a. Bits a => a -> a -> a
.|. (ZyanNativeStatusCode
c ZyanNativeStatusCode
-> ZyanNativeStatusCode -> ZyanNativeStatusCode
forall a. Bits a => a -> a -> a
.&. ZyanNativeStatusCode
0xFFFFF)
{-# INLINE makeZyanNativeStatus #-}
zyanModuleCore :: ZyanNativeModule
zyanModuleCore :: ZyanNativeModule
zyanModuleCore = ZyanNativeModule
0x001
{-# INLINE zyanModuleCore #-}
zyanCoreStatusSuccess :: ZyanNativeStatus
zyanCoreStatusSuccess :: ZyanNativeStatusCode
zyanCoreStatusSuccess = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
False ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x00
{-# INLINE zyanCoreStatusSuccess #-}
zyanCoreStatusFailed :: ZyanNativeStatus
zyanCoreStatusFailed :: ZyanNativeStatusCode
zyanCoreStatusFailed = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x01
{-# INLINE zyanCoreStatusFailed #-}
zyanCoreStatusTrue :: ZyanNativeStatus
zyanCoreStatusTrue :: ZyanNativeStatusCode
zyanCoreStatusTrue = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
False ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x02
{-# INLINE zyanCoreStatusTrue #-}
zyanCoreStatusFalse :: ZyanNativeStatus
zyanCoreStatusFalse :: ZyanNativeStatusCode
zyanCoreStatusFalse = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
False ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x03
{-# INLINE zyanCoreStatusFalse #-}
zyanCoreStatusInvalidArgument :: ZyanNativeStatus
zyanCoreStatusInvalidArgument :: ZyanNativeStatusCode
zyanCoreStatusInvalidArgument = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x04
{-# INLINE zyanCoreStatusInvalidArgument #-}
zyanCoreStatusInvalidOperation :: ZyanNativeStatus
zyanCoreStatusInvalidOperation :: ZyanNativeStatusCode
zyanCoreStatusInvalidOperation = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x05
{-# INLINE zyanCoreStatusInvalidOperation #-}
zyanCoreStatusAccessDenied :: ZyanNativeStatus
zyanCoreStatusAccessDenied :: ZyanNativeStatusCode
zyanCoreStatusAccessDenied = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x06
{-# INLINE zyanCoreStatusAccessDenied #-}
zyanCoreStatusNotFound :: ZyanNativeStatus
zyanCoreStatusNotFound :: ZyanNativeStatusCode
zyanCoreStatusNotFound = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x07
{-# INLINE zyanCoreStatusNotFound #-}
zyanCoreStatusOutOfRange :: ZyanNativeStatus
zyanCoreStatusOutOfRange :: ZyanNativeStatusCode
zyanCoreStatusOutOfRange = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x08
{-# INLINE zyanCoreStatusOutOfRange #-}
zyanCoreStatusInsufficientBufferSize :: ZyanNativeStatus
zyanCoreStatusInsufficientBufferSize :: ZyanNativeStatusCode
zyanCoreStatusInsufficientBufferSize =
Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x09
{-# INLINE zyanCoreStatusInsufficientBufferSize #-}
zyanCoreStatusNotEnoughMemory :: ZyanNativeStatus
zyanCoreStatusNotEnoughMemory :: ZyanNativeStatusCode
zyanCoreStatusNotEnoughMemory = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x0A
{-# INLINE zyanCoreStatusNotEnoughMemory #-}
zyanCoreStatusBadSystemCall :: ZyanNativeStatus
zyanCoreStatusBadSystemCall :: ZyanNativeStatusCode
zyanCoreStatusBadSystemCall = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x0B
{-# INLINE zyanCoreStatusBadSystemCall #-}
zyanCoreStatusOutOfResources :: ZyanNativeStatus
zyanCoreStatusOutOfResources :: ZyanNativeStatusCode
zyanCoreStatusOutOfResources = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x0C
{-# INLINE zyanCoreStatusOutOfResources #-}
zyanCoreStatusMissingDependency :: ZyanNativeStatus
zyanCoreStatusMissingDependency :: ZyanNativeStatusCode
zyanCoreStatusMissingDependency = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleCore ZyanNativeStatusCode
0x0D
{-# INLINE zyanCoreStatusMissingDependency #-}
zyanModuleZydis :: ZyanNativeModule
zyanModuleZydis :: ZyanNativeModule
zyanModuleZydis = ZyanNativeModule
0x002
{-# INLINE zyanModuleZydis #-}
zydisStatusNoMoreData :: ZyanNativeStatus
zydisStatusNoMoreData :: ZyanNativeStatusCode
zydisStatusNoMoreData = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x00
{-# INLINE zydisStatusNoMoreData #-}
zydisStatusDecodingError :: ZyanNativeStatus
zydisStatusDecodingError :: ZyanNativeStatusCode
zydisStatusDecodingError = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x01
{-# INLINE zydisStatusDecodingError #-}
zydisStatusInstructionTooLong :: ZyanNativeStatus
zydisStatusInstructionTooLong :: ZyanNativeStatusCode
zydisStatusInstructionTooLong = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x02
{-# INLINE zydisStatusInstructionTooLong #-}
zydisStatusBadRegister :: ZyanNativeStatus
zydisStatusBadRegister :: ZyanNativeStatusCode
zydisStatusBadRegister = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x03
{-# INLINE zydisStatusBadRegister #-}
zydisStatusIllegalLock :: ZyanNativeStatus
zydisStatusIllegalLock :: ZyanNativeStatusCode
zydisStatusIllegalLock = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x04
{-# INLINE zydisStatusIllegalLock #-}
zydisStatusIllegalLegacyPFX :: ZyanNativeStatus
zydisStatusIllegalLegacyPFX :: ZyanNativeStatusCode
zydisStatusIllegalLegacyPFX = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x05
{-# INLINE zydisStatusIllegalLegacyPFX #-}
zydisStatusIllegalRex :: ZyanNativeStatus
zydisStatusIllegalRex :: ZyanNativeStatusCode
zydisStatusIllegalRex = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x06
{-# INLINE zydisStatusIllegalRex #-}
zydisStatusInvalidMap :: ZyanNativeStatus
zydisStatusInvalidMap :: ZyanNativeStatusCode
zydisStatusInvalidMap = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x07
{-# INLINE zydisStatusInvalidMap #-}
zydisStatusMalformedEvex :: ZyanNativeStatus
zydisStatusMalformedEvex :: ZyanNativeStatusCode
zydisStatusMalformedEvex = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x08
{-# INLINE zydisStatusMalformedEvex #-}
zydisStatusMalformedMvex :: ZyanNativeStatus
zydisStatusMalformedMvex :: ZyanNativeStatusCode
zydisStatusMalformedMvex = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x09
{-# INLINE zydisStatusMalformedMvex #-}
zydisStatusInvalidMask :: ZyanNativeStatus
zydisStatusInvalidMask :: ZyanNativeStatusCode
zydisStatusInvalidMask = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
True ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x0A
{-# INLINE zydisStatusInvalidMask #-}
zydisStatusSkipToken :: ZyanNativeStatus
zydisStatusSkipToken :: ZyanNativeStatusCode
zydisStatusSkipToken = Bool
-> ZyanNativeModule -> ZyanNativeStatusCode -> ZyanNativeStatusCode
makeZyanNativeStatus Bool
False ZyanNativeModule
zyanModuleZydis ZyanNativeStatusCode
0x0B
{-# INLINE zydisStatusSkipToken #-}
fromZyanNativeStatus :: ZyanNativeStatus -> ZyanStatus
fromZyanNativeStatus :: ZyanNativeStatusCode -> ZyanStatus
fromZyanNativeStatus ZyanNativeStatusCode
s
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusSuccess = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusSuccess
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusFailed = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusFailed
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusTrue = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusTrue
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusFalse = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusFalse
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusInvalidArgument = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusInvalidArgument
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusInvalidOperation = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusInvalidOperation
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusAccessDenied = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusAccessDenied
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusNotFound = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusNotFound
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusOutOfRange = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusOutOfRange
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusInsufficientBufferSize = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left
ZyanCoreStatus
ZyanCoreStatusInsufficientBufferSize
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusNotEnoughMemory = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusNotEnoughMemory
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusBadSystemCall = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusBadSystemCall
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusOutOfResources = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusOutOfResources
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zyanCoreStatusMissingDependency = ZyanCoreStatus -> ZyanStatus
forall a b. a -> Either a b
Left ZyanCoreStatus
ZyanCoreStatusMissingDependency
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusNoMoreData = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusNoMoreData
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusInvalidMask = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusInvalidMask
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusMalformedMvex = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusMalformedMvex
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusMalformedEvex = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusMalformedEvex
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusInvalidMap = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusInvalidMap
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusIllegalRex = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusIllegalRex
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusIllegalLegacyPFX = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusIllegalLegacyPFX
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusIllegalLock = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusIllegalLock
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusBadRegister = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusBadRegister
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusInstructionTooLong = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusInstructionTooLong
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusDecodingError = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusDecodingError
| ZyanNativeStatusCode
s ZyanNativeStatusCode -> ZyanNativeStatusCode -> Bool
forall a. Eq a => a -> a -> Bool
== ZyanNativeStatusCode
zydisStatusSkipToken = ZydisStatus -> ZyanStatus
forall a b. b -> Either a b
Right ZydisStatus
ZydisStatusSkipToken
| Bool
otherwise = String -> ZyanStatus
forall a. HasCallStack => String -> a
error (String -> ZyanStatus) -> String -> ZyanStatus
forall a b. (a -> b) -> a -> b
$ String
"Fatal error, missing zyan status code: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> ZyanNativeStatusCode -> String
forall a. Show a => a -> String
show ZyanNativeStatusCode
s
{-# INLINE fromZyanNativeStatus #-}