1SECTION .text
2
3; INTN
4; EFIAPI
5; __XenHypercall2 (
6;   IN     VOID *HypercallAddr,
7;   IN OUT INTN Arg1,
8;   IN OUT INTN Arg2
9;   );
10global ASM_PFX(__XenHypercall2)
11ASM_PFX(__XenHypercall2):
12  ; Save only ebx, ecx is supposed to be a scratch register and needs to be
13  ; saved by the caller
14  push ebx
15  ; Copy HypercallAddr to eax
16  mov eax, [esp + 8]
17  ; Copy Arg1 to the register expected by Xen
18  mov ebx, [esp + 12]
19  ; Copy Arg2 to the register expected by Xen
20  mov ecx, [esp + 16]
21  ; Call HypercallAddr
22  call eax
23  pop ebx
24  ret
25
26