diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2015-02-28 20:32:27 +0000 |
---|---|---|
committer | lersek <lersek@Edk2> | 2015-02-28 20:32:27 +0000 |
commit | bbc3758ab5bc0e526994a63d739d445416ff0c07 (patch) | |
tree | f55eaa48c03a5442fb83891d1207e853de731ec2 /OvmfPkg/XenBusDxe/Ia32 | |
parent | d6970b9b4155db6835629ec938f86490b3ae5091 (diff) | |
download | edk2-platforms-bbc3758ab5bc0e526994a63d739d445416ff0c07.tar.xz |
Ovmf/Xen: refactor XenBusDxe hypercall implementation
This refactors the Xen hypercall implementation that is part of the
XenBusDxe driver, in preparation of splitting it off entirely into
a XenHypercallLib library. This involves:
- removing the dependency on XENBUS_DEVICE* pointers in the XenHypercall()
prototypes
- moving the discovered hyperpage address to a global variable
- moving XenGetSharedInfoPage() to its only user XenBusDxe.c (the shared info
page is not strictly part of the Xen hypercall interface, and is not used
by other expected users of XenHypercallLib such as the Xen console version
of SerialPortLib
- reimplement XenHypercall2() in C and move the indexing of the hyperpage
there; the existing asm implementations are renamed to __XenHypercall2() and
invoked from the new C implementation.
Contributed-under: TianoCore Contribution Agreement 1.0
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16969 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/XenBusDxe/Ia32')
-rw-r--r-- | OvmfPkg/XenBusDxe/Ia32/hypercall.nasm | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/OvmfPkg/XenBusDxe/Ia32/hypercall.nasm b/OvmfPkg/XenBusDxe/Ia32/hypercall.nasm index 8547c30b81..e0fa71bb5b 100644 --- a/OvmfPkg/XenBusDxe/Ia32/hypercall.nasm +++ b/OvmfPkg/XenBusDxe/Ia32/hypercall.nasm @@ -2,13 +2,13 @@ SECTION .text ; INTN
; EFIAPI
-; XenHypercall2 (
+; __XenHypercall2 (
; IN VOID *HypercallAddr,
; IN OUT INTN Arg1,
; IN OUT INTN Arg2
; );
-global ASM_PFX(XenHypercall2)
-ASM_PFX(XenHypercall2):
+global ASM_PFX(__XenHypercall2)
+ASM_PFX(__XenHypercall2):
; Save only ebx, ecx is supposed to be a scratch register and needs to be
; saved by the caller
push ebx
|