blob: 77d34784755cfabe844ef75e6f7ad6d29796a3fb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# INTN
# EFIAPI
# XenHypercall2 (
# IN VOID *HypercallAddr,
# IN OUT INTN Arg1,
# IN OUT INTN Arg2
# );
ASM_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 8(%esp), %eax
# Copy Arg1 to the register expected by Xen
mov 12(%esp), %ebx
# Copy Arg2 to the register expected by Xen
mov 16(%esp), %ecx
# Call HypercallAddr
call *%eax
pop %ebx
ret
|