From cd8ff8fdda24c83be6ac247f8c21e5e4032fe586 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Sat, 28 Feb 2015 20:32:39 +0000 Subject: Ovmf/Xen: move XenBusDxe hypercall code to separate library This moves all of the Xen hypercall code that was private to XenBusDxe to a new library class XenHypercallLib. This will allow us to reimplement it for ARM, and to export the Xen hypercall functionality to other parts of the code, such as a Xen console SerialPortLib driver. Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: Laszlo Ersek Reviewed-by: Anthony PERARD Signed-off-by: Ard Biesheuvel Signed-off-by: Laszlo Ersek git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16970 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/XenHypercallLib/Ia32/hypercall.nasm | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 OvmfPkg/Library/XenHypercallLib/Ia32/hypercall.nasm (limited to 'OvmfPkg/Library/XenHypercallLib/Ia32') diff --git a/OvmfPkg/Library/XenHypercallLib/Ia32/hypercall.nasm b/OvmfPkg/Library/XenHypercallLib/Ia32/hypercall.nasm new file mode 100644 index 0000000000..e0fa71bb5b --- /dev/null +++ b/OvmfPkg/Library/XenHypercallLib/Ia32/hypercall.nasm @@ -0,0 +1,25 @@ +SECTION .text + +; INTN +; EFIAPI +; __XenHypercall2 ( +; IN VOID *HypercallAddr, +; IN OUT INTN Arg1, +; IN OUT INTN Arg2 +; ); +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 + ; Copy HypercallAddr to eax + mov eax, [esp + 8] + ; Copy Arg1 to the register expected by Xen + mov ebx, [esp + 12] + ; Copy Arg2 to the register expected by Xen + mov ecx, [esp + 16] + ; Call HypercallAddr + call eax + pop ebx + ret + -- cgit v1.2.3