From 86d968e05ee062b10fe8d597b34f5eab2e2878bd Mon Sep 17 00:00:00 2001 From: Anthony PERARD Date: Wed, 29 Oct 2014 06:51:18 +0000 Subject: OvmfPkg/XenBusDxe: Introduce XenBus support itself. This is a bus-like on top of XenStore. It will look for advertised ParaVirtualized devices and initialize them by producing XenBus protocol. Change in V4: - Replace the license by the commonly used file header text. - Clean XenBus.h header (remove copyright that does not belong to the file anymore; and rewrite the brief description of the file) - Fix description on the function Change in V3: - Insert to ChildList later, once populated. - Remove XENBUS_XENSTORE_NODE macro. - add comment to XenBusAddDevice and XenBusEnumerateBus about concurrency calls. - Add a description to the introduced member to the protocol. Change in V2: - comment, file header - Fix comment style - Error handling in the main init function - coding style - Fix error path in add device. Origin: FreeBSD 10.0 License: This patch adds XenBus.c which is under the MIT licence. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anthony PERARD Acked-by: Jordan Justen git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16270 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/Include/Protocol/XenBus.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'OvmfPkg/Include') diff --git a/OvmfPkg/Include/Protocol/XenBus.h b/OvmfPkg/Include/Protocol/XenBus.h index 5693b3f284..8d1fb52c22 100644 --- a/OvmfPkg/Include/Protocol/XenBus.h +++ b/OvmfPkg/Include/Protocol/XenBus.h @@ -198,6 +198,24 @@ XENSTORE_STATUS IN BOOLEAN Abort ); +/** + Set a new state for the frontend of the PV driver. + + @param This A pointer to XENBUS_PROTOCOL instance. + @param Transaction The transaction to end/commit. + @param State The new state to apply. + + @return On success, XENSTORE_STATUS_SUCCESS. Otherwise an errno value + indicating the type of failure. +**/ +typedef +XENSTORE_STATUS +(EFIAPI *XENBUS_SET_STATE)( + IN XENBUS_PROTOCOL *This, + IN XENSTORE_TRANSACTION Transaction, + IN XenBusState State + ); + /** Grant access to the page Frame to the domain DomainId. @@ -322,6 +340,7 @@ struct _XENBUS_PROTOCOL { XENBUS_XS_REMOVE XsRemove; XENBUS_XS_TRANSACTION_START XsTransactionStart; XENBUS_XS_TRANSACTION_END XsTransactionEnd; + XENBUS_SET_STATE SetState; XENBUS_GRANT_ACCESS GrantAccess; XENBUS_GRANT_END_ACCESS GrantEndAccess; -- cgit v1.2.3