From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: EDK2 devel <edk2-devel@lists.sourceforge.net>,
Xen Devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH v2 04/18] OvmfPkg/XenBusDxe: Add support to make Xen Hypercalls.
Date: Wed, 10 Sep 2014 16:01:38 -0400 [thread overview]
Message-ID: <20140910200138.GE3556@laptop.dumpdata.com> (raw)
In-Reply-To: <1409849473-9268-5-git-send-email-anthony.perard@citrix.com>
On Thu, Sep 04, 2014 at 05:50:59PM +0100, Anthony PERARD wrote:
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
One comment below, otherwise
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>
> ---
> Change in V2:
> - file header, copyright
> - Add License
> - Add push/pop instruction.
> - fix types
> - Comment of exported functions
> - Improve coding style
> - Add error handling in the main init function (of the drivers)
> - Comment assembly
> ---
> OvmfPkg/XenBusDxe/X64/hypercall.S | 23 +++++++
> OvmfPkg/XenBusDxe/X64/hypercall.asm | 27 ++++++++
> OvmfPkg/XenBusDxe/XenBusDxe.c | 22 ++++++
> OvmfPkg/XenBusDxe/XenBusDxe.h | 5 ++
> OvmfPkg/XenBusDxe/XenBusDxe.inf | 6 ++
> OvmfPkg/XenBusDxe/XenHypercall.c | 134 ++++++++++++++++++++++++++++++++++++
> OvmfPkg/XenBusDxe/XenHypercall.h | 100 +++++++++++++++++++++++++++
> 7 files changed, 317 insertions(+)
> create mode 100644 OvmfPkg/XenBusDxe/X64/hypercall.S
> create mode 100644 OvmfPkg/XenBusDxe/X64/hypercall.asm
> create mode 100644 OvmfPkg/XenBusDxe/XenHypercall.c
> create mode 100644 OvmfPkg/XenBusDxe/XenHypercall.h
>
> diff --git a/OvmfPkg/XenBusDxe/X64/hypercall.S b/OvmfPkg/XenBusDxe/X64/hypercall.S
> new file mode 100644
> index 0000000..3b18e48
> --- /dev/null
> +++ b/OvmfPkg/XenBusDxe/X64/hypercall.S
> @@ -0,0 +1,23 @@
> +# Hypercall with 2 arguments
> +# INTN
> +# EFIAPI
> +# XenHypercall2 (
> +# IN VOID *HypercallAddr,
> +# IN OUT INTN Arg1,
> +# IN OUT INTN Arg2
> +# );
> +ASM_GLOBAL ASM_PFX(XenHypercall2)
> +ASM_PFX(XenHypercall2):
> + push %rdi
> + push %rsi
> + # Copy HypercallAddr to rax
> + movq %rcx, %rax
> + # Copy Arg1 to the register expected by Xen
> + movq %rdx, %rdi
> + # Copy Arg2 to the register expected by Xen
> + movq %r8, %rsi
> + # Call HypercallAddr
> + call *%rax
> + pop %rsi
> + pop %rdi
> + ret
> diff --git a/OvmfPkg/XenBusDxe/X64/hypercall.asm b/OvmfPkg/XenBusDxe/X64/hypercall.asm
> new file mode 100644
> index 0000000..a39f240
> --- /dev/null
> +++ b/OvmfPkg/XenBusDxe/X64/hypercall.asm
> @@ -0,0 +1,27 @@
> +.code
> +
> +; Hypercall with 2 arguments
> +; INTN
> +; EFIAPI
> +; XenHypercall2 (
> +; IN VOID *HypercallAddr,
> +; IN OUT INTN Arg1,
> +; IN OUT INTN Arg2
> +; );
> +XenHypercall2 PROC
> + push rdi
> + push rsi
> + ; Copy HypercallAddr to rax
> + mov rax, rcx
> + ; Copy Arg1 to the register expected by Xen
> + mov rdi, rdx
> + ; Copy Arg2 to the register expected by Xen
> + mov rsi, r8
> + ; Call HypercallAddr
> + call rax
> + pop rsi
> + pop rdi
> + ret
> +XenHypercall2 ENDP
> +
> +END
> diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.c b/OvmfPkg/XenBusDxe/XenBusDxe.c
> index e125ed7..db88cb4 100644
> --- a/OvmfPkg/XenBusDxe/XenBusDxe.c
> +++ b/OvmfPkg/XenBusDxe/XenBusDxe.c
> @@ -45,6 +45,8 @@
>
> #include "XenBusDxe.h"
>
> +#include "XenHypercall.h"
> +
>
> ///
> /// Driver Binding Protocol instance
> @@ -279,6 +281,8 @@ NotifyExitBoot (
> @retval EFI_SUCCESS The device was started.
> @retval EFI_DEVICE_ERROR The device could not be started due to a device error.Currently not implemented.
> @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
> + @retval EFI_UNSUPPORTED Something is missing on the system that
> + prevent to start the edvice.
> @retval Others The driver failded to start the device.
>
> **/
> @@ -298,6 +302,20 @@ XenBusDxeDriverBindingStart (
> Dev->This = This;
> Dev->ControllerHandle = ControllerHandle;
>
> + Status = XenHyperpageInit (Dev);
> + if (EFI_ERROR (Status)) {
> + DEBUG ((EFI_D_ERROR, "XenBus: Unable to retrieve the hyperpage."));
> + Status = EFI_UNSUPPORTED;
> + goto ErrorNoHyperpage;
> + }
> +
> + Status = XenGetSharedInfoPage (Dev);
> + if (EFI_ERROR (Status)) {
> + DEBUG ((EFI_D_ERROR, "XenBus: Unable to get the shared info page."));
> + Status = EFI_UNSUPPORTED;
> + goto ErrorNoHyperpage;
> + }
> +
> Status = gBS->CreateEvent (EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_CALLBACK,
> NotifyExitBoot,
> (VOID*) Dev,
> @@ -306,6 +324,10 @@ XenBusDxeDriverBindingStart (
>
> mMyDevice = Dev;
> return EFI_SUCCESS;
> +
> +ErrorNoHyperpage:
> + FreePool (Dev);
> + return Status;
> }
>
> /**
> diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.h b/OvmfPkg/XenBusDxe/XenBusDxe.h
> index 9e4860a..af0510a 100644
> --- a/OvmfPkg/XenBusDxe/XenBusDxe.h
> +++ b/OvmfPkg/XenBusDxe/XenBusDxe.h
> @@ -86,6 +86,8 @@ extern EFI_COMPONENT_NAME_PROTOCOL gXenBusDxeComponentName;
> //
> // Other stuff
> //
> +#include <IndustryStandard/Xen/xen.h>
> +
> #define PCI_VENDOR_ID_XEN 0x5853
> #define PCI_DEVICE_ID_XEN_PLATFORM 0x0001
>
> @@ -99,6 +101,9 @@ struct _XENBUS_DEVICE {
> EFI_DRIVER_BINDING_PROTOCOL *This;
> EFI_HANDLE ControllerHandle;
> EFI_EVENT ExitBootEvent;
> +
> + VOID *Hyperpage;
> + shared_info_t *SharedInfo;
> };
>
> #endif
> diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.inf b/OvmfPkg/XenBusDxe/XenBusDxe.inf
> index b4d7551..edc3e51 100644
> --- a/OvmfPkg/XenBusDxe/XenBusDxe.inf
> +++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf
> @@ -31,6 +31,12 @@
> DriverBinding.h
> ComponentName.c
> ComponentName.h
> + XenHypercall.c
> + XenHypercall.h
> +
> +[Sources.X64]
> + X64/hypercall.S
> + X64/hypercall.asm
>
> [LibraryClasses]
> UefiDriverEntryPoint
> diff --git a/OvmfPkg/XenBusDxe/XenHypercall.c b/OvmfPkg/XenBusDxe/XenHypercall.c
> new file mode 100644
> index 0000000..2e1f361
> --- /dev/null
> +++ b/OvmfPkg/XenBusDxe/XenHypercall.c
> @@ -0,0 +1,134 @@
> +/** @file
> + Functions to make Xen hypercalls.
> +
> + Copyright (C) 2014, Citrix Ltd.
> +
> + Redistribution and use in source and binary forms, with or without
> + modification, are permitted provided that the following conditions
> + are met:
> +
> + * Redistributions of source code must retain the above copyright
> + notice, this list of conditions and the following disclaimer.
> + * Redistributions in binary form must reproduce the above copyright
> + notice, this list of conditions and the following disclaimer in
> + the documentation and/or other materials provided with the
> + distribution.
> +
> + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
> + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
> + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
> + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
> + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + POSSIBILITY OF SUCH DAMAGE.
> +
> +**/
> +
> +#include <PiDxe.h>
> +#include <Library/HobLib.h>
> +#include <Guid/XenInfo.h>
> +
> +#include "XenBusDxe.h"
> +#include "XenHypercall.h"
> +
> +#include <IndustryStandard/Xen/hvm/params.h>
> +#include <IndustryStandard/Xen/memory.h>
> +
> +EFI_STATUS
> +XenHyperpageInit (
> + IN OUT XENBUS_DEVICE *Dev
> + )
> +{
> + EFI_HOB_GUID_TYPE *GuidHob;
> + EFI_XEN_INFO *XenInfo;
> +
> + GuidHob = GetFirstGuidHob (&gEfiXenInfoGuid);
> + if (GuidHob == NULL) {
> + return EFI_NOT_FOUND;
> + }
> + XenInfo = (EFI_XEN_INFO *) GET_GUID_HOB_DATA (GuidHob);
> + Dev->Hyperpage = XenInfo->HyperPages;
> + return EFI_SUCCESS;
> +}
> +
> +UINT64
> +XenHypercallHvmGetParam (
> + IN XENBUS_DEVICE *Dev,
> + IN INTN Index
> + )
> +{
> + xen_hvm_param_t Parameter;
> + INTN Error;
> +
> + ASSERT (Dev->Hyperpage != NULL);
> +
> + Parameter.domid = DOMID_SELF;
> + Parameter.index = Index;
> + Error = XenHypercall2 (Dev->Hyperpage + __HYPERVISOR_hvm_op * 32,
> + HVMOP_get_param, (INTN) &Parameter);
> + if (Error != 0) {
> + DEBUG ((EFI_D_ERROR,
> + "XenHypercall: Error %d trying to get HVM parameter %d\n",
> + Error, Index));
> + return 0;
> + }
> + return Parameter.value;
> +}
> +
> +INTN
> +XenHypercallMemoryOp (
> + IN XENBUS_DEVICE *Dev,
> + IN UINTN Operation,
> + IN OUT VOID *Arguments
> + )
> +{
> + ASSERT (Dev->Hyperpage != NULL);
> + return XenHypercall2 (Dev->Hyperpage + __HYPERVISOR_memory_op * 32,
> + Operation, (INTN) Arguments);
> +}
> +
> +INTN
> +XenHypercallEventChannelOp (
> + IN XENBUS_DEVICE *Dev,
> + IN INTN Operation,
> + IN OUT VOID *Arguments
> + )
> +{
> + ASSERT (Dev->Hyperpage != NULL);
> + return XenHypercall2 (Dev->Hyperpage + __HYPERVISOR_event_channel_op * 32,
> + Operation, (INTN) Arguments);
> +}
> +
> +EFI_STATUS
> +XenGetSharedInfoPage (
> + IN OUT XENBUS_DEVICE *Dev
> + )
> +{
> + xen_add_to_physmap_t Parameter;
> +
> + ASSERT (Dev->SharedInfo == NULL);
> +
> + Parameter.domid = DOMID_SELF;
> + Parameter.space = XENMAPSPACE_shared_info;
> + Parameter.idx = 0;
> +
> + //
> + // using reserved page because the page is not released when linux is
s/linux/Linux
> + // starting because of the add_to_physmap. QEMU might try to access the
> + // page, and fail because it have no right to do so (segv).
> + //
> + Dev->SharedInfo = AllocateReservedPages (1);
> + Parameter.gpfn = (UINTN) Dev->SharedInfo >> EFI_PAGE_SHIFT;
> + if (XenHypercallMemoryOp (Dev, XENMEM_add_to_physmap, &Parameter) != 0) {
> + FreePages (Dev->SharedInfo, 1);
> + Dev->SharedInfo = NULL;
> + return EFI_LOAD_ERROR;
> + }
> +
> + return EFI_SUCCESS;
> +}
> diff --git a/OvmfPkg/XenBusDxe/XenHypercall.h b/OvmfPkg/XenBusDxe/XenHypercall.h
> new file mode 100644
> index 0000000..29eaf9f
> --- /dev/null
> +++ b/OvmfPkg/XenBusDxe/XenHypercall.h
> @@ -0,0 +1,100 @@
> +#ifndef __XENBUS_DXE_HYPERCALL_H__
> +#define __XENBUS_DXE_HYPERCALL_H__
> +
> +typedef struct _XENBUS_DEVICE XENBUS_DEVICE;
> +
> +/**
> + This function will put the two arguments in the right place (registers) and
> + call HypercallAddr, which correspond to an entry in the hypercall pages.
> +
> + @param HypercallAddr A memory address where the hypercall to call is.
> + @param Arg1 First argument.
> + @param Arg2 Second argument.
> +
> + @return Return 0 if success otherwise it return an errno.
> +**/
> +INTN
> +EFIAPI
> +XenHypercall2 (
> + IN VOID *HypercallAddr,
> + IN OUT INTN Arg1,
> + IN OUT INTN Arg2
> + );
> +
> +/**
> + Get the page where all hypercall are from the XenInfo hob.
> +
> + @param Dev A XENBUS_DEVICE instance.
> +
> + @retval EFI_NOT_FOUND hyperpage could not be found.
> + @retval EFI_SUCCESS Successfully retrieve the hyperpage pointer.
> +**/
> +EFI_STATUS
> +XenHyperpageInit (
> + XENBUS_DEVICE *Dev
> + );
> +
> +/**
> + Return the value of the HVM parameter Index.
> +
> + @param Dev A XENBUS_DEVICE instance.
> + @param Index The parameter to get, e.g. HVM_PARAM_STORE_EVTCHN.
> +
> + @return The value of the asked parameter or 0 in case of error.
> +**/
> +UINT64
> +XenHypercallHvmGetParam (
> + XENBUS_DEVICE *Dev,
> + INTN Index
> + );
> +
> +/**
> + Hypercall to do different operation on the memory.
> +
> + @param Dev A XENBUS_DEVICE instance.
> + @param Operation The operation number, e.g. XENMEM_add_to_physmap.
> + @param Arguments The arguments associated to the operation.
> +
> + @return Return the return value from the hypercall, 0 in case of success
> + otherwise, an error code.
> +**/
> +INTN
> +XenHypercallMemoryOp (
> + IN XENBUS_DEVICE *Dev,
> + IN UINTN Operation,
> + IN OUT VOID *Arguments
> + );
> +
> +/**
> + Do an operation on the event channels.
> +
> + @param Dev A XENBUS_DEVICE instance.
> + @param Operation The operation number, e.g. EVTCHNOP_send.
> + @param Arguments The argument associated to the operation.
> +
> + @return Return the return value from the hypercall, 0 in case of success
> + otherwise, an error code.
> +**/
> +INTN
> +XenHypercallEventChannelOp (
> + IN XENBUS_DEVICE *Dev,
> + IN INTN Operation,
> + IN OUT VOID *Arguments
> + );
> +
> +/**
> + Map the shared_info_t page into memory.
> +
> + @param Dev A XENBUS_DEVICE instance.
> +
> + @retval EFI_SUCCESS Dev->SharedInfo whill contain a pointer to
> + the shared info page
> + @retval EFI_LOAD_ERROR The shared info page could not be mapped. The
> + hypercall returned an error.
> +**/
> +EFI_STATUS
> +XenGetSharedInfoPage (
> + IN OUT XENBUS_DEVICE *Dev
> + );
> +
> +#endif
> --
> Anthony PERARD
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-09-10 20:01 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1409849473-9268-1-git-send-email-anthony.perard@citrix.com>
2014-09-04 16:50 ` [PATCH v2 01/18] OvmfPkg: Add public headers from Xen Project Anthony PERARD
2014-09-04 16:50 ` [PATCH v2 02/18] OvmfPkg: Add basic skeleton for the XenBus bus driver Anthony PERARD
2014-09-04 16:50 ` [PATCH v2 03/18] OvmfPkg/XenBusDxe: Add device state struct and create an ExitBoot services event Anthony PERARD
2014-09-04 16:50 ` [PATCH v2 04/18] OvmfPkg/XenBusDxe: Add support to make Xen Hypercalls Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 05/18] OvmfPkg/XenBusDxe: Open PciIo protocol Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 06/18] OvmfPkg: Introduce XenBus Protocol Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 07/18] OvmfPkg/XenBusDxe: Add InterlockedCompareExchange16 Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 08/18] OvmfPkg/XenBusDxe: Add Grant Table functions Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 09/18] OvmfPkg/XenBusDxe: Add Event Channel Notify Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 10/18] OvmfPkg/XenBusDxe: Add TestAndClearBit Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 11/18] OvmfPkg/XenBusDxe: Add XenStore client implementation Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 12/18] OvmfPkg/XenBusDxe: Add an helper AsciiStrDup Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 13/18] OvmfPkg/XenBusDxe: Add XenStore function into the XenBus protocol Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 14/18] OvmfPkg/XenBusDxe: Indroduce XenBus support itself Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 15/18] OvmfPkg/XenBusDxe: Add Event Channel into XenBus protocol Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 16/18] OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 17/18] OvmfPkg/XenPvBlkDxe: Add BlockFront client Anthony PERARD
2014-09-04 16:51 ` [PATCH v2 18/18] OvmfPkg/XenPvBlkDxe: Add BlockIo Anthony PERARD
2014-09-04 18:01 ` [edk2] [PATCH v2 00/18] Introducing Xen PV block driver to OVMF Laszlo Ersek
[not found] ` <5408A8E3.2020805@redhat.com>
2014-09-05 13:34 ` Anthony PERARD
[not found] ` <20140905133440.GB1654@perard.uk.xensource.com>
2014-09-05 19:30 ` Jordan Justen
2014-09-05 21:14 ` Laszlo Ersek
[not found] ` <CAFe8ug86UtwYQY-1P5wp6tQ_2Yi2fwgNU7+knHV0JH4SDz07jQ@mail.gmail.com>
2014-09-08 15:36 ` Anthony PERARD
[not found] ` <1409849473-9268-2-git-send-email-anthony.perard@citrix.com>
2014-09-10 19:43 ` [PATCH v2 01/18] OvmfPkg: Add public headers from Xen Project Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-3-git-send-email-anthony.perard@citrix.com>
2014-09-10 19:49 ` [PATCH v2 02/18] OvmfPkg: Add basic skeleton for the XenBus bus driver Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-4-git-send-email-anthony.perard@citrix.com>
2014-09-10 19:58 ` [PATCH v2 03/18] OvmfPkg/XenBusDxe: Add device state struct and create an ExitBoot services event Konrad Rzeszutek Wilk
2014-09-18 10:33 ` Anthony PERARD
[not found] ` <1409849473-9268-5-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:01 ` Konrad Rzeszutek Wilk [this message]
[not found] ` <1409849473-9268-6-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:03 ` [PATCH v2 05/18] OvmfPkg/XenBusDxe: Open PciIo protocol Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-7-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:05 ` [PATCH v2 06/18] OvmfPkg: Introduce XenBus Protocol Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-8-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:09 ` [PATCH v2 07/18] OvmfPkg/XenBusDxe: Add InterlockedCompareExchange16 Konrad Rzeszutek Wilk
2014-09-18 10:55 ` Anthony PERARD
[not found] ` <1409849473-9268-9-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:12 ` [PATCH v2 08/18] OvmfPkg/XenBusDxe: Add Grant Table functions Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-10-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:15 ` [PATCH v2 09/18] OvmfPkg/XenBusDxe: Add Event Channel Notify Konrad Rzeszutek Wilk
2014-09-18 10:56 ` Anthony PERARD
[not found] ` <1409849473-9268-11-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:18 ` [PATCH v2 10/18] OvmfPkg/XenBusDxe: Add TestAndClearBit Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-12-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:48 ` [PATCH v2 11/18] OvmfPkg/XenBusDxe: Add XenStore client implementation Konrad Rzeszutek Wilk
2014-09-18 11:10 ` Anthony PERARD
[not found] ` <1409849473-9268-13-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:50 ` [PATCH v2 12/18] OvmfPkg/XenBusDxe: Add an helper AsciiStrDup Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-14-git-send-email-anthony.perard@citrix.com>
2014-09-10 20:54 ` [PATCH v2 13/18] OvmfPkg/XenBusDxe: Add XenStore function into the XenBus protocol Konrad Rzeszutek Wilk
[not found] ` <1409849473-9268-15-git-send-email-anthony.perard@citrix.com>
2014-09-11 17:10 ` [PATCH v2 14/18] OvmfPkg/XenBusDxe: Indroduce XenBus support itself Konrad Rzeszutek Wilk
2014-09-18 11:26 ` Anthony PERARD
[not found] ` <1409849473-9268-16-git-send-email-anthony.perard@citrix.com>
2014-09-12 13:58 ` [PATCH v2 15/18] OvmfPkg/XenBusDxe: Add Event Channel into XenBus protocol Konrad Rzeszutek Wilk
2014-09-18 11:28 ` Anthony PERARD
[not found] ` <1409849473-9268-17-git-send-email-anthony.perard@citrix.com>
2014-09-12 14:03 ` [PATCH v2 16/18] OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton Konrad Rzeszutek Wilk
2014-09-18 11:31 ` Anthony PERARD
[not found] ` <1409849473-9268-18-git-send-email-anthony.perard@citrix.com>
2014-09-12 14:47 ` [PATCH v2 17/18] OvmfPkg/XenPvBlkDxe: Add BlockFront client Konrad Rzeszutek Wilk
2014-09-18 11:53 ` Anthony PERARD
[not found] ` <1409849473-9268-19-git-send-email-anthony.perard@citrix.com>
2014-09-12 14:57 ` [PATCH v2 18/18] OvmfPkg/XenPvBlkDxe: Add BlockIo Konrad Rzeszutek Wilk
2014-09-18 15:00 ` Anthony PERARD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140910200138.GE3556@laptop.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=anthony.perard@citrix.com \
--cc=edk2-devel@lists.sourceforge.net \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).