hsXenCtrl 0.0.7 → 0.1.0
raw patch · 3 files changed
+47/−3 lines, 3 filesdep ~arraydep ~basedep ~bytestring
Dependency ranges changed: array, base, bytestring, dlist, mtl
Files
- System/Xen.hs +16/−0
- System/Xen/CBindings.hsc +29/−1
- hsXenCtrl.cabal +2/−2
System/Xen.hs view
@@ -39,6 +39,8 @@ , xcEvtChanUnbind , xcEvtChanPending , xcEvtChanUnmask+ , xcVersion+ , getXenVersion -- Types , System.Xen.CBindings.DomId(..) , DumpcoreCallback@@ -392,3 +394,17 @@ lxf "xcEvtChanUnmask" r <- liftIO $ xc_evtchn_unmask hdl port errnoOnNegOne r ()++xcVersion :: XCHandle -> XenVersion -> Xen String+xcVersion hdl ver = do+ lxf "xcVersion"+ r <- liftIO $ xc_version hdl ver nullPtr+ errnoOnNegOne r "Error"+ return (show r)++getXenVersion :: Xen String+getXenVersion = do+ h <- xcInterfaceOpen+ r <- liftIO $ xc_version h xENVER_version nullPtr+ xcInterfaceClose h+ return (show r)
System/Xen/CBindings.hsc view
@@ -130,6 +130,16 @@ , MemoryProtectionFlags , MMUExtOp(..) , XenDomainHandleT+ , XenVersion+ , xENVER_extraversion+ , xENVER_compile_info+ , xENVER_capabilities+ , xENVER_changeset+ , xENVER_platform_parameters+ , xENVER_get_features+ , xENVER_pagesize+ , xENVER_guest_handle+ , xENVER_version ) where import Data.Bits@@ -651,7 +661,7 @@ xc_sysctl :: XCHandle -> Ptr XenSysCtl -> IO CInt foreign import ccall unsafe "xenctrl.h xc_version"- xc_version :: XCHandle -> CInt -> Ptr () -> IO CInt+ xc_version :: XCHandle -> XenVersion -> Ptr () -> IO CInt foreign import ccall unsafe "xenctrl.h xc_acm_op" xc_acm_op :: XCHandle -> CInt -> Ptr () -> CULong -> IO CInt@@ -773,3 +783,21 @@ (#poke xc_core_header_t, xch_ctxt_offset) ptr c (#poke xc_core_header_t, xch_index_offset) ptr i (#poke xc_core_header_t, xch_pages_offset) ptr g++newtype XenVersion = XV CInt deriving (Eq, Ord, Show, Enum)++instance Storable XenVersion where+ sizeOf _ = sizeOf (undefined :: CInt)+ alignment _ = alignment (undefined :: CInt)+ peek ptr = peek (castPtr ptr :: Ptr CInt) >>= return . toEnum . fromIntegral+ poke ptr a = poke (castPtr ptr) (fromIntegral (fromEnum a) :: CInt)++xENVER_version = XV 0+xENVER_extraversion = XV 1+xENVER_compile_info = XV 2+xENVER_capabilities = XV 3+xENVER_changeset = XV 4+xENVER_platform_parameters = XV 5+xENVER_get_features = XV 6+xENVER_pagesize = XV 7+xENVER_guest_handle = XV 8
hsXenCtrl.cabal view
@@ -1,5 +1,5 @@ name: hsXenCtrl-version: 0.0.7+version: 0.1.0 synopsis: FFI bindings to the Xen Control library. description: FFI bindings to xenctrl.h and perhaps more. The System.Xen.CBindings should provide direct access@@ -17,7 +17,7 @@ maintainer: thomas.dubuisson@gmail.com homepage: http://haskell.org/haskellwiki/HsXenCtrl stability: experimental-build-Depends: base, bytestring, mtl, array, dlist+build-Depends: base >= 3.0 && < 4.5 , bytestring < 1.0 , mtl < 1.2 && >= 1.0, dlist == 0.5, array >= 0.2 && < 0.4 build-type: Simple ghc-options: exposed-modules: System.Xen.CBindings, System.Xen