packages feed

libvirt-hs 0.2.1 → 0.2.2

raw patch · 6 files changed

+17/−1329 lines, 6 files

Files

− System/LibVirt/Errors.hs
@@ -1,565 +0,0 @@--- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)--- Edit the ORIGNAL .chs file instead!---{-# LINE 1 "System/LibVirt/Errors.chs" #-}{-# LANGUAGE ForeignFunctionInterface, ScopedTypeVariables, StandaloneDeriving, DeriveDataTypeable #-}---{-# LINE 3 "System/LibVirt/Errors.chs" #-}---module System.LibVirt.Errors-  (Error (..), ErrorLevel (..),-   ErrorDomain (..), ErrorNumber (..),-   catchVirtError,-   exceptionOnMinusOne,-   ptrToConnection, ptrToDomain, ptrToNetwork,-   connectionToPtr, domainToPtr, networkToPtr)-  where--import qualified Control.Exception as E-import Data.Generics-import Foreign-import Foreign.C.Types-import Foreign.C.String--import System.LibVirt.Internal-{-# LINE 22 "System/LibVirt/Errors.chs" #-}--data ErrorLevel = ErrNone-                | ErrWarning-                | ErrError-                deriving (Eq,Show)-instance Enum ErrorLevel where-  fromEnum ErrNone = 0-  fromEnum ErrWarning = 1-  fromEnum ErrError = 2--  toEnum 0 = ErrNone-  toEnum 1 = ErrWarning-  toEnum 2 = ErrError-  toEnum unmatched = error ("ErrorLevel.toEnum: Cannot match " ++ show unmatched)--{-# LINE 24 "System/LibVirt/Errors.chs" #-}-deriving instance Data ErrorLevel-deriving instance Typeable ErrorLevel--data ErrorDomain = FromNone-                 | FromXen-                 | FromXend-                 | FromXenstore-                 | FromSexpr-                 | FromXml-                 | FromDom-                 | FromRpc-                 | FromProxy-                 | FromConf-                 | FromQemu-                 | FromNet-                 | FromTest-                 | FromRemote-                 | FromOpenvz-                 | FromXenxm-                 | FromStatsLinux-                 | FromLxc-                 | FromStorage-                 | FromNetwork-                 | FromDomain-                 | FromUml-                 | FromNodedev-                 | FromXenInotify-                 | FromSecurity-                 | FromVbox-                 | FromInterface-                 | FromOne-                 | FromEsx-                 | FromPhyp-                 | FromSecret-                 | FromCpu-                 | FromXenapi-                 | FromNwfilter-                 | FromHook-                 | FromDomainSnapshot-                 | FromAudit-                 | FromSysinfo-                 | FromStreams-                 | FromVmware-                 | FromEvent-                 | FromLibxl-                 | FromLocking-                 | FromHyperv-                 | FromCapabilities-                 deriving (Eq,Show)-instance Enum ErrorDomain where-  fromEnum FromNone = 0-  fromEnum FromXen = 1-  fromEnum FromXend = 2-  fromEnum FromXenstore = 3-  fromEnum FromSexpr = 4-  fromEnum FromXml = 5-  fromEnum FromDom = 6-  fromEnum FromRpc = 7-  fromEnum FromProxy = 8-  fromEnum FromConf = 9-  fromEnum FromQemu = 10-  fromEnum FromNet = 11-  fromEnum FromTest = 12-  fromEnum FromRemote = 13-  fromEnum FromOpenvz = 14-  fromEnum FromXenxm = 15-  fromEnum FromStatsLinux = 16-  fromEnum FromLxc = 17-  fromEnum FromStorage = 18-  fromEnum FromNetwork = 19-  fromEnum FromDomain = 20-  fromEnum FromUml = 21-  fromEnum FromNodedev = 22-  fromEnum FromXenInotify = 23-  fromEnum FromSecurity = 24-  fromEnum FromVbox = 25-  fromEnum FromInterface = 26-  fromEnum FromOne = 27-  fromEnum FromEsx = 28-  fromEnum FromPhyp = 29-  fromEnum FromSecret = 30-  fromEnum FromCpu = 31-  fromEnum FromXenapi = 32-  fromEnum FromNwfilter = 33-  fromEnum FromHook = 34-  fromEnum FromDomainSnapshot = 35-  fromEnum FromAudit = 36-  fromEnum FromSysinfo = 37-  fromEnum FromStreams = 38-  fromEnum FromVmware = 39-  fromEnum FromEvent = 40-  fromEnum FromLibxl = 41-  fromEnum FromLocking = 42-  fromEnum FromHyperv = 43-  fromEnum FromCapabilities = 44--  toEnum 0 = FromNone-  toEnum 1 = FromXen-  toEnum 2 = FromXend-  toEnum 3 = FromXenstore-  toEnum 4 = FromSexpr-  toEnum 5 = FromXml-  toEnum 6 = FromDom-  toEnum 7 = FromRpc-  toEnum 8 = FromProxy-  toEnum 9 = FromConf-  toEnum 10 = FromQemu-  toEnum 11 = FromNet-  toEnum 12 = FromTest-  toEnum 13 = FromRemote-  toEnum 14 = FromOpenvz-  toEnum 15 = FromXenxm-  toEnum 16 = FromStatsLinux-  toEnum 17 = FromLxc-  toEnum 18 = FromStorage-  toEnum 19 = FromNetwork-  toEnum 20 = FromDomain-  toEnum 21 = FromUml-  toEnum 22 = FromNodedev-  toEnum 23 = FromXenInotify-  toEnum 24 = FromSecurity-  toEnum 25 = FromVbox-  toEnum 26 = FromInterface-  toEnum 27 = FromOne-  toEnum 28 = FromEsx-  toEnum 29 = FromPhyp-  toEnum 30 = FromSecret-  toEnum 31 = FromCpu-  toEnum 32 = FromXenapi-  toEnum 33 = FromNwfilter-  toEnum 34 = FromHook-  toEnum 35 = FromDomainSnapshot-  toEnum 36 = FromAudit-  toEnum 37 = FromSysinfo-  toEnum 38 = FromStreams-  toEnum 39 = FromVmware-  toEnum 40 = FromEvent-  toEnum 41 = FromLibxl-  toEnum 42 = FromLocking-  toEnum 43 = FromHyperv-  toEnum 44 = FromCapabilities-  toEnum unmatched = error ("ErrorDomain.toEnum: Cannot match " ++ show unmatched)--{-# LINE 28 "System/LibVirt/Errors.chs" #-}-deriving instance Data ErrorDomain-deriving instance Typeable ErrorDomain--data Error = Error {-  veCode :: ErrorNumber,-  veDomain :: ErrorDomain,-  veMessage :: String,-  veLevel :: ErrorLevel,-  veConnect :: Connection,-  veDom :: Domain,-  veStr1 :: Maybe String,-  veStr2 :: Maybe String,-  veStr3 :: Maybe String,-  veInt1 :: Int,-  veInt2 :: Int,-  veNet :: Network }-  deriving (Eq, Show, Data, Typeable)--instance E.Exception Error--type VirtErrorPtr = Ptr (Error)-{-# LINE 49 "System/LibVirt/Errors.chs" #-}--data ErrorNumber = ErrOk-                 | ErrInternalError-                 | ErrNoMemory-                 | ErrNoSupport-                 | ErrUnknownHost-                 | ErrNoConnect-                 | ErrInvalidConn-                 | ErrInvalidDomain-                 | ErrInvalidArg-                 | ErrOperationFailed-                 | ErrGetFailed-                 | ErrPostFailed-                 | ErrHttpError-                 | ErrSexprSerial-                 | ErrNoXen-                 | ErrXenCall-                 | ErrOsType-                 | ErrNoKernel-                 | ErrNoRoot-                 | ErrNoSource-                 | ErrNoTarget-                 | ErrNoName-                 | ErrNoOs-                 | ErrNoDevice-                 | ErrNoXenstore-                 | ErrDriverFull-                 | ErrCallFailed-                 | ErrXmlError-                 | ErrDomExist-                 | ErrOperationDenied-                 | ErrOpenFailed-                 | ErrReadFailed-                 | ErrParseFailed-                 | ErrConfSyntax-                 | ErrWriteFailed-                 | ErrXmlDetail-                 | ErrInvalidNetwork-                 | ErrNetworkExist-                 | ErrSystemError-                 | ErrRpc-                 | ErrGnutlsError-                 | WarNoNetwork-                 | ErrNoDomain-                 | ErrNoNetwork-                 | ErrInvalidMac-                 | ErrAuthFailed-                 | ErrInvalidStoragePool-                 | ErrInvalidStorageVol-                 | WarNoStorage-                 | ErrNoStoragePool-                 | ErrNoStorageVol-                 | WarNoNode-                 | ErrInvalidNodeDevice-                 | ErrNoNodeDevice-                 | ErrNoSecurityModel-                 | ErrOperationInvalid-                 | WarNoInterface-                 | ErrNoInterface-                 | ErrInvalidInterface-                 | ErrMultipleInterfaces-                 | WarNoNwfilter-                 | ErrInvalidNwfilter-                 | ErrNoNwfilter-                 | ErrBuildFirewall-                 | WarNoSecret-                 | ErrInvalidSecret-                 | ErrNoSecret-                 | ErrConfigUnsupported-                 | ErrOperationTimeout-                 | ErrMigratePersistFailed-                 | ErrHookScriptFailed-                 | ErrInvalidDomainSnapshot-                 | ErrNoDomainSnapshot-                 | ErrInvalidStream-                 | ErrArgumentUnsupported-                 | ErrStorageProbeFailed-                 | ErrStoragePoolBuilt-                 | ErrSnapshotRevertRisky-                 | ErrOperationAborted-                 deriving (Eq,Show)-instance Enum ErrorNumber where-  fromEnum ErrOk = 0-  fromEnum ErrInternalError = 1-  fromEnum ErrNoMemory = 2-  fromEnum ErrNoSupport = 3-  fromEnum ErrUnknownHost = 4-  fromEnum ErrNoConnect = 5-  fromEnum ErrInvalidConn = 6-  fromEnum ErrInvalidDomain = 7-  fromEnum ErrInvalidArg = 8-  fromEnum ErrOperationFailed = 9-  fromEnum ErrGetFailed = 10-  fromEnum ErrPostFailed = 11-  fromEnum ErrHttpError = 12-  fromEnum ErrSexprSerial = 13-  fromEnum ErrNoXen = 14-  fromEnum ErrXenCall = 15-  fromEnum ErrOsType = 16-  fromEnum ErrNoKernel = 17-  fromEnum ErrNoRoot = 18-  fromEnum ErrNoSource = 19-  fromEnum ErrNoTarget = 20-  fromEnum ErrNoName = 21-  fromEnum ErrNoOs = 22-  fromEnum ErrNoDevice = 23-  fromEnum ErrNoXenstore = 24-  fromEnum ErrDriverFull = 25-  fromEnum ErrCallFailed = 26-  fromEnum ErrXmlError = 27-  fromEnum ErrDomExist = 28-  fromEnum ErrOperationDenied = 29-  fromEnum ErrOpenFailed = 30-  fromEnum ErrReadFailed = 31-  fromEnum ErrParseFailed = 32-  fromEnum ErrConfSyntax = 33-  fromEnum ErrWriteFailed = 34-  fromEnum ErrXmlDetail = 35-  fromEnum ErrInvalidNetwork = 36-  fromEnum ErrNetworkExist = 37-  fromEnum ErrSystemError = 38-  fromEnum ErrRpc = 39-  fromEnum ErrGnutlsError = 40-  fromEnum WarNoNetwork = 41-  fromEnum ErrNoDomain = 42-  fromEnum ErrNoNetwork = 43-  fromEnum ErrInvalidMac = 44-  fromEnum ErrAuthFailed = 45-  fromEnum ErrInvalidStoragePool = 46-  fromEnum ErrInvalidStorageVol = 47-  fromEnum WarNoStorage = 48-  fromEnum ErrNoStoragePool = 49-  fromEnum ErrNoStorageVol = 50-  fromEnum WarNoNode = 51-  fromEnum ErrInvalidNodeDevice = 52-  fromEnum ErrNoNodeDevice = 53-  fromEnum ErrNoSecurityModel = 54-  fromEnum ErrOperationInvalid = 55-  fromEnum WarNoInterface = 56-  fromEnum ErrNoInterface = 57-  fromEnum ErrInvalidInterface = 58-  fromEnum ErrMultipleInterfaces = 59-  fromEnum WarNoNwfilter = 60-  fromEnum ErrInvalidNwfilter = 61-  fromEnum ErrNoNwfilter = 62-  fromEnum ErrBuildFirewall = 63-  fromEnum WarNoSecret = 64-  fromEnum ErrInvalidSecret = 65-  fromEnum ErrNoSecret = 66-  fromEnum ErrConfigUnsupported = 67-  fromEnum ErrOperationTimeout = 68-  fromEnum ErrMigratePersistFailed = 69-  fromEnum ErrHookScriptFailed = 70-  fromEnum ErrInvalidDomainSnapshot = 71-  fromEnum ErrNoDomainSnapshot = 72-  fromEnum ErrInvalidStream = 73-  fromEnum ErrArgumentUnsupported = 74-  fromEnum ErrStorageProbeFailed = 75-  fromEnum ErrStoragePoolBuilt = 76-  fromEnum ErrSnapshotRevertRisky = 77-  fromEnum ErrOperationAborted = 78--  toEnum 0 = ErrOk-  toEnum 1 = ErrInternalError-  toEnum 2 = ErrNoMemory-  toEnum 3 = ErrNoSupport-  toEnum 4 = ErrUnknownHost-  toEnum 5 = ErrNoConnect-  toEnum 6 = ErrInvalidConn-  toEnum 7 = ErrInvalidDomain-  toEnum 8 = ErrInvalidArg-  toEnum 9 = ErrOperationFailed-  toEnum 10 = ErrGetFailed-  toEnum 11 = ErrPostFailed-  toEnum 12 = ErrHttpError-  toEnum 13 = ErrSexprSerial-  toEnum 14 = ErrNoXen-  toEnum 15 = ErrXenCall-  toEnum 16 = ErrOsType-  toEnum 17 = ErrNoKernel-  toEnum 18 = ErrNoRoot-  toEnum 19 = ErrNoSource-  toEnum 20 = ErrNoTarget-  toEnum 21 = ErrNoName-  toEnum 22 = ErrNoOs-  toEnum 23 = ErrNoDevice-  toEnum 24 = ErrNoXenstore-  toEnum 25 = ErrDriverFull-  toEnum 26 = ErrCallFailed-  toEnum 27 = ErrXmlError-  toEnum 28 = ErrDomExist-  toEnum 29 = ErrOperationDenied-  toEnum 30 = ErrOpenFailed-  toEnum 31 = ErrReadFailed-  toEnum 32 = ErrParseFailed-  toEnum 33 = ErrConfSyntax-  toEnum 34 = ErrWriteFailed-  toEnum 35 = ErrXmlDetail-  toEnum 36 = ErrInvalidNetwork-  toEnum 37 = ErrNetworkExist-  toEnum 38 = ErrSystemError-  toEnum 39 = ErrRpc-  toEnum 40 = ErrGnutlsError-  toEnum 41 = WarNoNetwork-  toEnum 42 = ErrNoDomain-  toEnum 43 = ErrNoNetwork-  toEnum 44 = ErrInvalidMac-  toEnum 45 = ErrAuthFailed-  toEnum 46 = ErrInvalidStoragePool-  toEnum 47 = ErrInvalidStorageVol-  toEnum 48 = WarNoStorage-  toEnum 49 = ErrNoStoragePool-  toEnum 50 = ErrNoStorageVol-  toEnum 51 = WarNoNode-  toEnum 52 = ErrInvalidNodeDevice-  toEnum 53 = ErrNoNodeDevice-  toEnum 54 = ErrNoSecurityModel-  toEnum 55 = ErrOperationInvalid-  toEnum 56 = WarNoInterface-  toEnum 57 = ErrNoInterface-  toEnum 58 = ErrInvalidInterface-  toEnum 59 = ErrMultipleInterfaces-  toEnum 60 = WarNoNwfilter-  toEnum 61 = ErrInvalidNwfilter-  toEnum 62 = ErrNoNwfilter-  toEnum 63 = ErrBuildFirewall-  toEnum 64 = WarNoSecret-  toEnum 65 = ErrInvalidSecret-  toEnum 66 = ErrNoSecret-  toEnum 67 = ErrConfigUnsupported-  toEnum 68 = ErrOperationTimeout-  toEnum 69 = ErrMigratePersistFailed-  toEnum 70 = ErrHookScriptFailed-  toEnum 71 = ErrInvalidDomainSnapshot-  toEnum 72 = ErrNoDomainSnapshot-  toEnum 73 = ErrInvalidStream-  toEnum 74 = ErrArgumentUnsupported-  toEnum 75 = ErrStorageProbeFailed-  toEnum 76 = ErrStoragePoolBuilt-  toEnum 77 = ErrSnapshotRevertRisky-  toEnum 78 = ErrOperationAborted-  toEnum unmatched = error ("ErrorNumber.toEnum: Cannot match " ++ show unmatched)--{-# LINE 51 "System/LibVirt/Errors.chs" #-}--deriving instance Data ErrorNumber-deriving instance Typeable ErrorNumber--data UnknownError = UnknownError-  deriving (Eq, Show, Data, Typeable)--instance E.Exception UnknownError--peekCString' :: CString -> IO (Maybe String)-peekCString' ptr-  | ptr == nullPtr = return Nothing-  | otherwise = Just `fmap` peekCString ptr--convertError :: Ptr () -> IO (Maybe Error)-convertError ptr-  | ptr == nullPtr = return Nothing-  | otherwise = do-  let err = castPtr ptr :: VirtErrorPtr-  code <- (\ptr -> do {peekByteOff ptr 0 ::IO CInt}) err-  domain <- (\ptr -> do {peekByteOff ptr 4 ::IO CInt}) err-  message <- peekCString =<< (\ptr -> do {peekByteOff ptr 8 ::IO (Ptr CChar)}) err-  level <- (\ptr -> do {peekByteOff ptr 16 ::IO CInt}) err-  conn <- ptrToConnection' =<< (\ptr -> do {peekByteOff ptr 24 ::IO (Ptr ())}) err-  dom  <- ptrToDomain' =<< (\ptr -> do {peekByteOff ptr 32 ::IO (Ptr ())}) err-  str1 <- peekCString' =<< (\ptr -> do {peekByteOff ptr 40 ::IO (Ptr CChar)}) err-  str2 <- peekCString' =<< (\ptr -> do {peekByteOff ptr 48 ::IO (Ptr CChar)}) err-  str3 <- peekCString' =<< (\ptr -> do {peekByteOff ptr 56 ::IO (Ptr CChar)}) err-  int1 <- (\ptr -> do {peekByteOff ptr 64 ::IO CInt}) err-  int2 <- (\ptr -> do {peekByteOff ptr 68 ::IO CInt}) err-  net  <- ptrToNetwork' =<< (\ptr -> do {peekByteOff ptr 72 ::IO (Ptr ())}) err-  return $ Just $ Error {-             veCode = toEnum $ fromIntegral code,-             veDomain = toEnum $ fromIntegral domain,-             veMessage = message,-             veLevel = toEnum $ fromIntegral level,-             veConnect = conn,-             veDom = dom,-             veStr1 = str1,-             veStr2 = str2,-             veStr3 = str3,-             veInt1 = fromIntegral int1,-             veInt2 = fromIntegral int2,-             veNet = net }--getLastError :: IO (Maybe Error)-getLastError =-  getLastError'_ >>= \res ->-  convertError res >>= \res' ->-  return (res')-{-# LINE 97 "System/LibVirt/Errors.chs" #-}--catchVirtError :: IO a -> (Error -> IO b) -> IO (Either b a)-catchVirtError m f = do-  (Right `fmap` m) `E.catch` (\e -> Left `fmap` f e)--exceptionOnMinusOne :: CInt -> IO Int-exceptionOnMinusOne x = do-  if x == -1-    then handleError' (fromIntegral x)-    else return (fromIntegral x)--handleError :: IO a-handleError = do-    merr <- getLastError-    case merr of-      Just err -> E.throw err-      Nothing  -> E.throw UnknownError--handleError' :: a -> IO a-handleError' x = do-    merr <- getLastError-    case merr of-      Just err -> E.throw err-      Nothing  -> return x--ptrToConnection :: Ptr () -> IO Connection-ptrToConnection ptr-  | ptr == nullPtr = handleError-  | otherwise      = return $ Connection (castPtr ptr)--ptrToConnection' :: Ptr () -> IO Connection-ptrToConnection' ptr = return $ Connection (castPtr ptr)--connectionToPtr :: Connection -> Ptr ()-connectionToPtr (Connection ptr) = castPtr ptr--ptrToDomain :: Ptr () -> IO Domain-ptrToDomain ptr-  | ptr == nullPtr = handleError-  | otherwise      = return $ Domain (castPtr ptr)--ptrToDomain' :: Ptr () -> IO Domain-ptrToDomain' ptr = return $ Domain (castPtr ptr)--domainToPtr :: Domain -> Ptr ()-domainToPtr (Domain ptr) = castPtr ptr--ptrToNetwork :: Ptr () -> IO Network-ptrToNetwork ptr-  | ptr == nullPtr = handleError-  | otherwise      = return $ Network (castPtr ptr)--ptrToNetwork' :: Ptr () -> IO Network-ptrToNetwork' ptr = return $ Network (castPtr ptr)--networkToPtr :: Network -> Ptr ()-networkToPtr (Network ptr) = castPtr ptr---foreign import ccall safe "System/LibVirt/Errors.chs.h virGetLastError"-  getLastError'_ :: (IO (Ptr ()))
System/LibVirt/Foreign.chs view
@@ -56,6 +56,7 @@    getDomainInfo, getDomainXML,    defineDomainXML, undefineDomain,    getDomainID, getDomainName,+   getDomainHostname_, getDomainHostname,     -- * Domains control    createDomain, createDomainXML,@@ -292,6 +293,12 @@  {# fun virDomainGetName as getDomainName     { domainToPtr `Domain' } -> `String' #}++{# fun virDomainGetHostname as getDomainHostname_+    { domainToPtr `Domain', `Int' } -> `String' #}++getDomainHostname :: Domain -> IO String+getDomainHostname dptr = getDomainHostname_ dptr 0  {# fun virDomainLookupByName as lookupDomainName     { connectionToPtr `Connection',
− System/LibVirt/Foreign.hs
@@ -1,710 +0,0 @@--- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)--- Edit the ORIGNAL .chs file instead!---{-# LINE 1 "System/LibVirt/Foreign.chs" #-}{-# LANGUAGE ForeignFunctionInterface, StandaloneDeriving, DeriveDataTypeable, EmptyDataDecls #-}---{-# LINE 3 "System/LibVirt/Foreign.chs" #-}---module System.LibVirt.Foreign-  (-- * Types-   Connection, Domain, Network,-   DomainID,-   DomainInfo (..),-   DomainState (..),-   Stream,-   DomainCreateFlags (..),-   DomainXMLFlags (..),-   SecurityLabel (..),-   SecurityModel (..),-   NodeInfo (..),-   SchedParameterType (..),-   ConnectCredential (..),--   -- * Connection management functions-   initialize,-   openConnection, closeConnection,--   -- * Domains management functions-   runningDomainsCount, definedDomainsCount,-   runningDomainsIDs, definedDomainsNames,-   lookupDomainID, lookupDomainName,-   getDomainInfo, getDomainXML,-   defineDomainXML, undefineDomain,--   -- * Domains control-   createDomain, createDomainXML,-   destroyDomain, -   shutdownDomain, rebootDomain,-   suspendDomain, resumeDomain,-   saveDomain, restoreDomain,-   refDomain, freeDomain,--   -- * Networks management-   getNetworkConnection,-   runningNetworksCount, definedNetworksCount,-   runningNetworksNames, definedNetworksNames,-   lookupNetworkName, lookupNetworkUUID,-   createNetworkXML, defineNetworkXML,-   undefineNetwork, destroyNetwork,-   createNetwork,-   refNetwork, freeNetwork,-   getNetworkName,-   getNetworkXML-  ) where--import Data.Bits-import Data.Generics-import Foreign-import Foreign.C.Types-import Foreign.C.String--import System.LibVirt.Internal-{-# LINE 60 "System/LibVirt/Foreign.chs" #-}-import System.LibVirt.Errors-{-# LINE 61 "System/LibVirt/Foreign.chs" #-}--cIntConv = fromIntegral--cuchar2state :: CUChar -> DomainState-cuchar2state c = toEnum (fromIntegral c)--flags2int :: (Enum f, Num a) => [f] -> a-flags2int list = fromIntegral $ foldr (.|.) 0 (map fromEnum list)--data DomainInfo = DomainInfo {-  diState :: DomainState,-  diMaxMem :: Integer,-  diMemory :: Integer,-  diNrVirtCPU :: Int,-  diCPUTime :: Integer }-  deriving (Eq, Show)--type DomainInfoPtr = Ptr (DomainInfo)-{-# LINE 79 "System/LibVirt/Foreign.chs" #-}--data DomainState = DomainNostate-                 | DomainRunning-                 | DomainBlocked-                 | DomainPaused-                 | DomainShutdown-                 | DomainShutoff-                 | DomainCrashed-                 | DomainLast-                 deriving (Eq,Show)-instance Enum DomainState where-  fromEnum DomainNostate = 0-  fromEnum DomainRunning = 1-  fromEnum DomainBlocked = 2-  fromEnum DomainPaused = 3-  fromEnum DomainShutdown = 4-  fromEnum DomainShutoff = 5-  fromEnum DomainCrashed = 6-  fromEnum DomainLast = 7--  toEnum 0 = DomainNostate-  toEnum 1 = DomainRunning-  toEnum 2 = DomainBlocked-  toEnum 3 = DomainPaused-  toEnum 4 = DomainShutdown-  toEnum 5 = DomainShutoff-  toEnum 6 = DomainCrashed-  toEnum 7 = DomainLast-  toEnum unmatched = error ("DomainState.toEnum: Cannot match " ++ show unmatched)--{-# LINE 81 "System/LibVirt/Foreign.chs" #-}-data DomainCreateFlags = DomainNone-                       | DomainStartPaused-                       | DomainStartAutodestroy-                       | DomainStartBypassCache-                       | DomainStartForceBoot-                       deriving (Eq,Show)-instance Enum DomainCreateFlags where-  fromEnum DomainNone = 0-  fromEnum DomainStartPaused = 1-  fromEnum DomainStartAutodestroy = 2-  fromEnum DomainStartBypassCache = 4-  fromEnum DomainStartForceBoot = 8--  toEnum 0 = DomainNone-  toEnum 1 = DomainStartPaused-  toEnum 2 = DomainStartAutodestroy-  toEnum 4 = DomainStartBypassCache-  toEnum 8 = DomainStartForceBoot-  toEnum unmatched = error ("DomainCreateFlags.toEnum: Cannot match " ++ show unmatched)--{-# LINE 82 "System/LibVirt/Foreign.chs" #-}-data DomainXMLFlags = DomainXmlSecure-                    | DomainXmlInactive-                    | DomainXmlUpdateCpu-                    deriving (Eq,Show)-instance Enum DomainXMLFlags where-  fromEnum DomainXmlSecure = 1-  fromEnum DomainXmlInactive = 2-  fromEnum DomainXmlUpdateCpu = 4--  toEnum 1 = DomainXmlSecure-  toEnum 2 = DomainXmlInactive-  toEnum 4 = DomainXmlUpdateCpu-  toEnum unmatched = error ("DomainXMLFlags.toEnum: Cannot match " ++ show unmatched)--{-# LINE 83 "System/LibVirt/Foreign.chs" #-}--data NetworkXMLFlags = NetworkXML-  deriving (Eq, Show, Enum)--newtype Stream = Stream (Ptr (Stream))-{-# LINE 88 "System/LibVirt/Foreign.chs" #-}--data SecurityLabel = SecurityLabel {-  slLabel :: String,-  slEnforcing :: Int }-  deriving (Eq, Show)--type SecurityLabelPtr = Ptr (SecurityLabel)-{-# LINE 95 "System/LibVirt/Foreign.chs" #-}--data SecurityModel = SecurityModel {-  smModel :: String,-  smDOI :: String }-  deriving (Eq, Show)--type SecurityModelPtr = Ptr (SecurityModel)-{-# LINE 102 "System/LibVirt/Foreign.chs" #-}--data NodeInfo = NodeInfo {-  niModel :: String,-  niMemory :: CULong,-  niCPUs :: CUInt,-  niMHz :: CUInt,-  niNodes :: CUInt,-  niSockets :: CUInt,-  niCores :: CUInt,-  niThreads :: CUInt }-  deriving (Eq, Show)--type NodeInfoPtr = Ptr (NodeInfo)-{-# LINE 115 "System/LibVirt/Foreign.chs" #-}--data SchedParameterType = DomainSchedFieldInt-                        | DomainSchedFieldUint-                        | DomainSchedFieldLlong-                        | DomainSchedFieldUllong-                        | DomainSchedFieldDouble-                        | DomainSchedFieldBoolean-                        deriving (Eq,Show)-instance Enum SchedParameterType where-  fromEnum DomainSchedFieldInt = 1-  fromEnum DomainSchedFieldUint = 2-  fromEnum DomainSchedFieldLlong = 3-  fromEnum DomainSchedFieldUllong = 4-  fromEnum DomainSchedFieldDouble = 5-  fromEnum DomainSchedFieldBoolean = 6--  toEnum 1 = DomainSchedFieldInt-  toEnum 2 = DomainSchedFieldUint-  toEnum 3 = DomainSchedFieldLlong-  toEnum 4 = DomainSchedFieldUllong-  toEnum 5 = DomainSchedFieldDouble-  toEnum 6 = DomainSchedFieldBoolean-  toEnum unmatched = error ("SchedParameterType.toEnum: Cannot match " ++ show unmatched)--{-# LINE 117 "System/LibVirt/Foreign.chs" #-}--data ConnectCredential = ConnectCredential {-  ccType :: Int,-  ccPrompt :: String,-  ccChallenge :: String,-  ccDefresult :: String,-  ccResult :: String,-  ccResultLen :: Integer }-  deriving (Eq, Show)--type ConnectCredentialPtr = Ptr (ConnectCredential)-{-# LINE 128 "System/LibVirt/Foreign.chs" #-}--initialize :: IO (Int)-initialize =-  initialize'_ >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 130 "System/LibVirt/Foreign.chs" #-}--openConnection :: String -> IO (Connection)-openConnection a1 =-  withCString a1 $ \a1' -> -  openConnection'_ a1' >>= \res ->-  ptrToConnection res >>= \res' ->-  return (res')-{-# LINE 133 "System/LibVirt/Foreign.chs" #-}--closeConnection :: Connection -> IO (Int)-closeConnection a1 =-  let {a1' = connectionToPtr a1} in -  closeConnection'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 136 "System/LibVirt/Foreign.chs" #-}--runningDomainsCount :: Connection -> IO (Int)-runningDomainsCount a1 =-  let {a1' = connectionToPtr a1} in -  runningDomainsCount'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 139 "System/LibVirt/Foreign.chs" #-}--type DomainID = CInt--runningDomainsIDs :: Connection -> IO [DomainID]-runningDomainsIDs conn = do-  cn <- virConnectNumOfDomains (connectionToPtr conn)-  let n = fromIntegral cn-  r <- allocaArray n $ \arr -> do-          r <- virConnectListDomains-{-# LINE 148 "System/LibVirt/Foreign.chs" #-}-                  (connectionToPtr conn) arr cn-          peekArray n arr-  return r--definedDomainsNames :: Connection -> IO [String]-definedDomainsNames conn = do-  cn <- virConnectNumOfDefinedDomains (connectionToPtr conn)-  let n = fromIntegral cn-  allocaArray n $ \nptr -> do-    virConnectListDefinedDomains-{-# LINE 158 "System/LibVirt/Foreign.chs" #-}-        (connectionToPtr conn) nptr cn-    mapM peekCString =<< peekArray n nptr--lookupDomainID :: Connection -> DomainID -> IO (Domain)-lookupDomainID a1 a2 =-  let {a1' = connectionToPtr a1} in -  let {a2' = id a2} in -  lookupDomainID'_ a1' a2' >>= \res ->-  ptrToDomain res >>= \res' ->-  return (res')-{-# LINE 164 "System/LibVirt/Foreign.chs" #-}--lookupDomainName :: Connection -> String -> IO (Domain)-lookupDomainName a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  lookupDomainName'_ a1' a2' >>= \res ->-  ptrToDomain res >>= \res' ->-  return (res')-{-# LINE 168 "System/LibVirt/Foreign.chs" #-}--definedDomainsCount :: Connection -> IO (Int)-definedDomainsCount a1 =-  let {a1' = connectionToPtr a1} in -  definedDomainsCount'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 171 "System/LibVirt/Foreign.chs" #-}--getDomainInfo :: Domain -> IO DomainInfo-getDomainInfo dptr = do-  allocaBytes 40 $ \iptr -> do-         i <- virDomainGetInfo (domainToPtr dptr) iptr-         state   <- (\ptr -> do {peekByteOff ptr 0 ::IO CUChar})     iptr-         maxmem  <- (\ptr -> do {peekByteOff ptr 8 ::IO CULong})    iptr-         memory  <- (\ptr -> do {peekByteOff ptr 16 ::IO CULong})    iptr-         ncpus   <- (\ptr -> do {peekByteOff ptr 24 ::IO CUShort}) iptr-         cputime <- (\ptr -> do {peekByteOff ptr 32 ::IO CULLong})   iptr-         return $ DomainInfo {-                    diState     = cuchar2state state,-                    diMaxMem    = fromIntegral maxmem,-                    diMemory    = fromIntegral memory,-                    diNrVirtCPU = fromIntegral ncpus,-                    diCPUTime   = fromIntegral cputime }--defineDomainXML :: Connection -> String -> IO (Domain)-defineDomainXML a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  defineDomainXML'_ a1' a2' >>= \res ->-  ptrToDomain res >>= \res' ->-  return (res')-{-# LINE 191 "System/LibVirt/Foreign.chs" #-}--undefineDomain :: Domain -> IO (Int)-undefineDomain a1 =-  let {a1' = domainToPtr a1} in -  undefineDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 194 "System/LibVirt/Foreign.chs" #-}--createDomain :: Domain -> IO (Int)-createDomain a1 =-  let {a1' = domainToPtr a1} in -  createDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 197 "System/LibVirt/Foreign.chs" #-}--createDomainXML :: Connection -> String -> [DomainCreateFlags] -> IO (Domain)-createDomainXML a1 a2 a3 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  let {a3' = flags2int a3} in -  createDomainXML'_ a1' a2' a3' >>= \res ->-  ptrToDomain res >>= \res' ->-  return (res')-{-# LINE 202 "System/LibVirt/Foreign.chs" #-}--getDomainXML :: Domain -> [DomainXMLFlags] -> IO (String)-getDomainXML a1 a2 =-  let {a1' = domainToPtr a1} in -  let {a2' = flags2int a2} in -  getDomainXML'_ a1' a2' >>= \res ->-  peekCString res >>= \res' ->-  return (res')-{-# LINE 206 "System/LibVirt/Foreign.chs" #-}--shutdownDomain :: Domain -> IO (Int)-shutdownDomain a1 =-  let {a1' = domainToPtr a1} in -  shutdownDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 209 "System/LibVirt/Foreign.chs" #-}--rebootDomain :: Domain -> CUInt -> IO (Int)-rebootDomain a1 a2 =-  let {a1' = domainToPtr a1} in -  let {a2' = id a2} in -  rebootDomain'_ a1' a2' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 213 "System/LibVirt/Foreign.chs" #-}--destroyDomain :: Domain -> IO (Int)-destroyDomain a1 =-  let {a1' = domainToPtr a1} in -  destroyDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 216 "System/LibVirt/Foreign.chs" #-}--refDomain :: Domain -> IO (Int)-refDomain a1 =-  let {a1' = domainToPtr a1} in -  refDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 219 "System/LibVirt/Foreign.chs" #-}--freeDomain :: Domain -> IO (Int)-freeDomain a1 =-  let {a1' = domainToPtr a1} in -  freeDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 222 "System/LibVirt/Foreign.chs" #-}--suspendDomain :: Domain -> IO (Int)-suspendDomain a1 =-  let {a1' = domainToPtr a1} in -  suspendDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 225 "System/LibVirt/Foreign.chs" #-}--resumeDomain :: Domain -> IO (Int)-resumeDomain a1 =-  let {a1' = domainToPtr a1} in -  resumeDomain'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 228 "System/LibVirt/Foreign.chs" #-}--saveDomain :: Domain -> String -> IO (Int)-saveDomain a1 a2 =-  let {a1' = domainToPtr a1} in -  withCString a2 $ \a2' -> -  saveDomain'_ a1' a2' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 232 "System/LibVirt/Foreign.chs" #-}--restoreDomain :: Connection -> String -> IO (Int)-restoreDomain a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  restoreDomain'_ a1' a2' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 236 "System/LibVirt/Foreign.chs" #-}--getNetworkConnection :: Network -> IO (Connection)-getNetworkConnection a1 =-  let {a1' = networkToPtr a1} in -  getNetworkConnection'_ a1' >>= \res ->-  ptrToConnection res >>= \res' ->-  return (res')-{-# LINE 239 "System/LibVirt/Foreign.chs" #-}--runningNetworksCount :: Connection -> IO (Int)-runningNetworksCount a1 =-  let {a1' = connectionToPtr a1} in -  runningNetworksCount'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 242 "System/LibVirt/Foreign.chs" #-}--runningNetworksNames :: Connection -> IO [String]-runningNetworksNames conn = do-  cn <- virConnectNumOfNetworks (connectionToPtr conn)-  let n = fromIntegral cn-  allocaArray n $ \nptr -> do-    virConnectListNetworks (connectionToPtr conn) nptr cn-    mapM peekCString =<< peekArray n nptr--definedNetworksCount :: Connection -> IO (Int)-definedNetworksCount a1 =-  let {a1' = connectionToPtr a1} in -  definedNetworksCount'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 253 "System/LibVirt/Foreign.chs" #-}--definedNetworksNames :: Connection -> IO [String]-definedNetworksNames conn = do-  cn <- virConnectNumOfDefinedNetworks (connectionToPtr conn)-  let n = fromIntegral cn-  allocaArray n $ \nptr -> do-    virConnectListDefinedNetworks (connectionToPtr conn) nptr cn-    mapM peekCString =<< peekArray n nptr--lookupNetworkName :: Connection -> String -> IO (Network)-lookupNetworkName a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  lookupNetworkName'_ a1' a2' >>= \res ->-  ptrToNetwork res >>= \res' ->-  return (res')-{-# LINE 264 "System/LibVirt/Foreign.chs" #-}--withCUString :: String -> (Ptr CUChar -> IO a) -> IO a-withCUString str fn = withCString str (fn . castPtr)--lookupNetworkUUID :: Connection -> String -> IO (Network)-lookupNetworkUUID a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCUString a2 $ \a2' -> -  lookupNetworkUUID'_ a1' a2' >>= \res ->-  ptrToNetwork res >>= \res' ->-  return (res')-{-# LINE 270 "System/LibVirt/Foreign.chs" #-}--createNetworkXML :: Connection -> String -> IO (Network)-createNetworkXML a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  createNetworkXML'_ a1' a2' >>= \res ->-  ptrToNetwork res >>= \res' ->-  return (res')-{-# LINE 273 "System/LibVirt/Foreign.chs" #-}--defineNetworkXML :: Connection -> String -> IO (Network)-defineNetworkXML a1 a2 =-  let {a1' = connectionToPtr a1} in -  withCString a2 $ \a2' -> -  defineNetworkXML'_ a1' a2' >>= \res ->-  ptrToNetwork res >>= \res' ->-  return (res')-{-# LINE 276 "System/LibVirt/Foreign.chs" #-}--undefineNetwork :: Network -> IO (Int)-undefineNetwork a1 =-  let {a1' = networkToPtr a1} in -  undefineNetwork'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 279 "System/LibVirt/Foreign.chs" #-}--createNetwork :: Network -> IO (Int)-createNetwork a1 =-  let {a1' = networkToPtr a1} in -  createNetwork'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 282 "System/LibVirt/Foreign.chs" #-}--destroyNetwork :: Network -> IO (Int)-destroyNetwork a1 =-  let {a1' = networkToPtr a1} in -  destroyNetwork'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 285 "System/LibVirt/Foreign.chs" #-}--refNetwork :: Network -> IO (Int)-refNetwork a1 =-  let {a1' = networkToPtr a1} in -  refNetwork'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 288 "System/LibVirt/Foreign.chs" #-}--freeNetwork :: Network -> IO (Int)-freeNetwork a1 =-  let {a1' = networkToPtr a1} in -  freeNetwork'_ a1' >>= \res ->-  exceptionOnMinusOne res >>= \res' ->-  return (res')-{-# LINE 291 "System/LibVirt/Foreign.chs" #-}--getNetworkName :: Network -> IO (String)-getNetworkName a1 =-  let {a1' = networkToPtr a1} in -  getNetworkName'_ a1' >>= \res ->-  peekCString res >>= \res' ->-  return (res')-{-# LINE 294 "System/LibVirt/Foreign.chs" #-}--getNetworkXML :: Network -> [NetworkXMLFlags] -> IO (String)-getNetworkXML a1 a2 =-  let {a1' = networkToPtr a1} in -  let {a2' = flags2int a2} in -  getNetworkXML'_ a1' a2' >>= \res ->-  peekCString res >>= \res' ->-  return (res')-{-# LINE 298 "System/LibVirt/Foreign.chs" #-}---foreign import ccall safe "System/LibVirt/Foreign.chs.h virInitialize"-  initialize'_ :: (IO CInt)--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectOpen"-  openConnection'_ :: ((Ptr CChar) -> (IO (Ptr ())))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectClose"-  closeConnection'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfDomains"-  runningDomainsCount'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfDomains"-  virConnectNumOfDomains :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectListDomains"-  virConnectListDomains :: ((Ptr ()) -> ((Ptr CInt) -> (CInt -> (IO CInt))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfDefinedDomains"-  virConnectNumOfDefinedDomains :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectListDefinedDomains"-  virConnectListDefinedDomains :: ((Ptr ()) -> ((Ptr (Ptr CChar)) -> (CInt -> (IO CInt))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainLookupByID"-  lookupDomainID'_ :: ((Ptr ()) -> (CInt -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainLookupByName"-  lookupDomainName'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfDefinedDomains"-  definedDomainsCount'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainGetInfo"-  virDomainGetInfo :: ((Ptr ()) -> ((DomainInfoPtr) -> (IO CInt)))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainDefineXML"-  defineDomainXML'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainUndefine"-  undefineDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainCreate"-  createDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainCreateXML"-  createDomainXML'_ :: ((Ptr ()) -> ((Ptr CChar) -> (CUInt -> (IO (Ptr ())))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainGetXMLDesc"-  getDomainXML'_ :: ((Ptr ()) -> (CUInt -> (IO (Ptr CChar))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainShutdown"-  shutdownDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainReboot"-  rebootDomain'_ :: ((Ptr ()) -> (CUInt -> (IO CInt)))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainDestroy"-  destroyDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainRef"-  refDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainFree"-  freeDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainSuspend"-  suspendDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainResume"-  resumeDomain'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainSave"-  saveDomain'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO CInt)))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virDomainRestore"-  restoreDomain'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO CInt)))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkGetConnect"-  getNetworkConnection'_ :: ((Ptr ()) -> (IO (Ptr ())))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfNetworks"-  runningNetworksCount'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfNetworks"-  virConnectNumOfNetworks :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectListNetworks"-  virConnectListNetworks :: ((Ptr ()) -> ((Ptr (Ptr CChar)) -> (CInt -> (IO CInt))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfDefinedNetworks"-  definedNetworksCount'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectNumOfDefinedNetworks"-  virConnectNumOfDefinedNetworks :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virConnectListDefinedNetworks"-  virConnectListDefinedNetworks :: ((Ptr ()) -> ((Ptr (Ptr CChar)) -> (CInt -> (IO CInt))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkLookupByName"-  lookupNetworkName'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkLookupByUUID"-  lookupNetworkUUID'_ :: ((Ptr ()) -> ((Ptr CUChar) -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkCreateXML"-  createNetworkXML'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkDefineXML"-  defineNetworkXML'_ :: ((Ptr ()) -> ((Ptr CChar) -> (IO (Ptr ()))))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkUndefine"-  undefineNetwork'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkCreate"-  createNetwork'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkDestroy"-  destroyNetwork'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkRef"-  refNetwork'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkFree"-  freeNetwork'_ :: ((Ptr ()) -> (IO CInt))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkGetName"-  getNetworkName'_ :: ((Ptr ()) -> (IO (Ptr CChar)))--foreign import ccall safe "System/LibVirt/Foreign.chs.h virNetworkGetXMLDesc"-  getNetworkXML'_ :: ((Ptr ()) -> (CUInt -> (IO (Ptr CChar))))
− System/LibVirt/Internal.hs
@@ -1,51 +0,0 @@--- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)--- Edit the ORIGNAL .chs file instead!---{-# LINE 1 "System/LibVirt/Internal.chs" #-}{-# LANGUAGE ForeignFunctionInterface, StandaloneDeriving, DeriveDataTypeable #-}---{-# LINE 3 "System/LibVirt/Internal.chs" #-}----- | Internal types definitions and low-level functions.--- This module is not supposed to be imported by client code.-module System.LibVirt.Internal-  (Connection (..), Domain (..), Network (..)-  ) where--import Data.Generics-import Foreign-import Foreign.C.Types-import Foreign.C.String--newtype Connection = Connection (Ptr (Connection))-{-# LINE 18 "System/LibVirt/Internal.chs" #-}--deriving instance Eq Connection-deriving instance Data Connection-deriving instance Typeable Connection--instance Show Connection where-  show (Connection ptr) = "<Connection: " ++ show ptr ++ ">"--newtype Domain = Domain (Ptr (Domain))-{-# LINE 27 "System/LibVirt/Internal.chs" #-}--deriving instance Eq Domain-deriving instance Data Domain-deriving instance Typeable Domain--instance Show Domain where-  show (Domain ptr) = "<Domain: " ++ show ptr ++ ">"--newtype Network = Network (Ptr (Network))-{-# LINE 36 "System/LibVirt/Internal.chs" #-}--deriving instance Eq Network-deriving instance Data Network-deriving instance Typeable Network--instance Show Network where-  show (Network ptr) = "<Network: " ++ show ptr ++ ">"-
Test.hs view
@@ -17,6 +17,7 @@     ["list-nets"]        -> initialize >> withConnection uri listNets     ["start", domain]    -> initialize >> withConnection uri (start domain)     ["stop",  domain]    -> initialize >> withConnection uri (stop  domain)+    ["hostname", domain] -> initialize >> withConnection uri (hostname domain)     ["destroy", domain]  -> initialize >> withConnection uri (destroy domain)     ["callback", domain] -> initialize >> eventRegisterDefaultImpl >> withConnection uri (doTest1 domain)     ["capabilities"]     -> initialize >> withConnection uri (\c -> connectGetCapabilities c >>= putStrLn)@@ -48,6 +49,12 @@                                              putStrLn "Error:"                                              print e)   return ()++hostname :: String -> Connection -> IO ()+hostname domain conn = do+  dom <- lookupDomainName conn domain+  host <- getDomainHostname dom+  putStrLn host  doTest :: Connection -> IO () doTest conn = do
libvirt-hs.cabal view
@@ -1,11 +1,11 @@ Name:                libvirt-hs-Version:             0.2.1+Version:             0.2.2  Synopsis:            FFI bindings to libvirt virtualization API (http://libvirt.org)  Description:         This package provides low-level (at this moment, at least) FFI bindings to libvirt library. -Homepage:            http://redmine.iportnov.ru/projects/libvirt-hs+Homepage:            https://github.com/portnov/libvirt-hs  License:             BSD3 @@ -47,5 +47,5 @@  Source-repository head   type: git-  location: git://home.iportnov.ru/libvirt-hs.git+  location: https://github.com/portnov/libvirt-hs.git