Safe Haskell | None |
---|
Low-level interface to XenCtrl
. Each function defined in this module is
a ffi call to corresponding c function.
- xc_interface_open :: CInt -> CInt -> CInt -> IO XcHandle
- xc_interface_close :: XcHandle -> IO CInt
- xc_domain_getinfo :: XcHandle -> DomId -> CUInt -> Ptr DomainInfo -> IO CInt
- xc_domain_pause :: XcHandle -> DomId -> IO CInt
- xc_domain_unpause :: XcHandle -> DomId -> IO CInt
- xc_domain_shutdown :: XcHandle -> DomId -> CInt -> IO CInt
- xc_domain_destroy :: XcHandle -> DomId -> IO CInt
Interface
This function opens the handle to the hypervisor interface. Each successful call
to this function should have a corresponding call to xc_interface_close
.
xc_interface_close :: XcHandle -> IO CIntSource
This function closes an open hypervisor interface. This function can fail if the handle does not represent an open interface or if there were problems closing the interface. In the latter case the interface is still closed.
Domain
:: XcHandle | Handle to the open hypervisor interface |
-> DomId | First domain to enumerate from. |
-> CUInt | The number of requested domains |
-> Ptr DomainInfo | Pointer to the structure that will contain the information for enumerated domains |
-> IO CInt | Number of domains enumerated, -1 on error |
This function will return information about one or more domains. It is designed to iterate over the list of domains. If a single domain is requested, this function will return the next domain in the list - if one exists. It is, therefore, important in this case to make sure the domain requested was the one returned.
Domain pause
:: XcHandle | Handle to the open hypervisor interface |
-> DomId | Domain to pause |
-> IO CInt | 0 if success, -1 if error |
This function pauses a domain. A paused domain still exists in memory however it does not receive any timeslices from the hypervisor.
:: XcHandle | Handle to the open hypervisor interface |
-> DomId | Domain to unpause |
-> IO CInt | 0 if success, -1 if error |
This function unpauses a domain. The domain should have been previously paused.
Domain powerstate
:: XcHandle | Handle to the open hypervisor interface |
-> DomId | Domain to shutdown |
-> CInt | Shutdown reason |
-> IO CInt | 0 if success, -1 if error |
This function will shutdown a domain. This is intended for use in fully-virtualized domains where this operation is analogous to the sched_op operations in a paravirtualized domain.
:: XcHandle | Handle to the open hypervisor interface |
-> DomId | Domain to destroy |
-> IO CInt | 0 if success, -1 if error |
This function will destroy a domain. Destroying a domain removes the domain completely from memory. This function should be called after sending the domain a SHUTDOWN control message to free up the domain resources.