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