module System.Xen.Errors
( XcHandleOpenError(..)
, InvalidDomainShutdownReason(..)
, DomainGetInfoError(..)
, getErrno
) where
import Control.Exception.Lifted (Exception)
import Data.Typeable (Typeable)
import Foreign.C (CInt)
import Foreign.C.Error (Errno(..))
import qualified Foreign.C.Error as Error
import Control.Monad.Base (MonadBase(liftBase))
deriving instance Ord Errno
deriving instance Show Errno
deriving instance Typeable Errno
data XcHandleOpenError = XcHandleOpenError Errno
deriving (Eq, Ord, Show, Typeable)
instance Exception XcHandleOpenError
data InvalidDomainShutdownReason = InvalidDomainShutdownReason
CInt
deriving (Eq, Ord, Show, Typeable)
instance Exception InvalidDomainShutdownReason
data DomainGetInfoError = DomainGetInfoError Errno
deriving (Eq, Ord, Show, Typeable)
instance Exception DomainGetInfoError
getErrno :: MonadBase IO m => m Errno
getErrno = liftBase Error.getErrno