]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/XenBusDxe/X64/hypercall.nasm
Ovmf/Xen: refactor XenBusDxe hypercall implementation
[mirror_edk2.git] / OvmfPkg / XenBusDxe / X64 / hypercall.nasm
CommitLineData
60aafa1b
AP
1DEFAULT REL\r
2SECTION .text\r
abcbbb14
AP
3\r
4; INTN\r
5; EFIAPI\r
bbc3758a 6; __XenHypercall2 (\r
abcbbb14
AP
7; IN VOID *HypercallAddr,\r
8; IN OUT INTN Arg1,\r
9; IN OUT INTN Arg2\r
10; );\r
bbc3758a
AB
11global ASM_PFX(__XenHypercall2)\r
12ASM_PFX(__XenHypercall2):\r
abcbbb14
AP
13 push rdi\r
14 push rsi\r
15 ; Copy HypercallAddr to rax\r
16 mov rax, rcx\r
17 ; Copy Arg1 to the register expected by Xen\r
18 mov rdi, rdx\r
19 ; Copy Arg2 to the register expected by Xen\r
20 mov rsi, r8\r
21 ; Call HypercallAddr\r
22 call rax\r
23 pop rsi\r
24 pop rdi\r
25 ret\r
abcbbb14 26\r