InOsEmuPkg: Fix UINT64 bugs in IA-32 gasket.

At this point IA-32 emulator boots the shell with an X11 GOP window. Block IO seems to have an issue that needs to be debugged. 

Signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11854 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
andrewfish 2011-06-19 02:58:32 +00:00
parent 102d35ba76
commit f2f008b435
2 changed files with 26 additions and 16 deletions

View File

@ -108,8 +108,8 @@ VOID
EFIAPI EFIAPI
GasketSecSleep ( GasketSecSleep (
IN UINT64 Milliseconds IN UINT64 Milliseconds
); );
VOID VOID
EFIAPI EFIAPI
GasketSecCpuSleep ( GasketSecCpuSleep (

View File

@ -112,12 +112,14 @@ ASM_GLOBAL ASM_PFX(GasketSecSetTimer)
ASM_PFX(GasketSecSetTimer): ASM_PFX(GasketSecSetTimer):
pushl %ebp pushl %ebp
movl %esp, %ebp movl %esp, %ebp
subl $24, %esp // sub extra 16 from the stack for alignment subl $40, %esp // sub extra 16 from the stack for alignment
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call
movl 12(%ebp), %eax movl 16(%ebp), %eax
movl %eax, 4(%esp) movl %eax, 8(%esp)
movl 8(%ebp), %eax movl 8(%ebp), %eax
movl %eax, (%esp) movl 12(%ebp), %edx
movl %edx, 4(%esp)
movl %eax, (%esp)
call ASM_PFX(SecSetTimer) call ASM_PFX(SecSetTimer)
@ -182,8 +184,10 @@ ASM_PFX(GasketSecSleep):
movl %esp, %ebp movl %esp, %ebp
subl $24, %esp // sub extra 16 from the stack for alignment subl $24, %esp // sub extra 16 from the stack for alignment
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call
movl 8(%ebp), %eax movl 8(%ebp), %eax
movl %eax, (%esp) movl 12(%ebp), %ecx
movl %ecx, 4(%esp)
movl %eax, (%esp)
call ASM_PFX(SecSleep) call ASM_PFX(SecSleep)
@ -784,11 +788,15 @@ ASM_GLOBAL ASM_PFX(GasketPosixFileOpen)
ASM_PFX(GasketPosixFileOpen): ASM_PFX(GasketPosixFileOpen):
pushl %ebp pushl %ebp
movl %esp, %ebp movl %esp, %ebp
subl $40, %esp // sub extra 16 from the stack for alignment subl $56, %esp // sub extra 16 from the stack for alignment
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call
movl 24(%ebp), %eax movl 28(%ebp), %eax
movl %eax, 16(%esp) movl 32(%ebp), %ecx
movl %ecx, 24(%esp)
movl %eax, 20(%esp)
movl 20(%ebp), %eax movl 20(%ebp), %eax
movl 24(%ebp), %ecx
movl %ecx, 16(%esp)
movl %eax, 12(%esp) movl %eax, 12(%esp)
movl 16(%ebp), %eax movl 16(%ebp), %eax
movl %eax, 8(%esp) movl %eax, 8(%esp)
@ -875,12 +883,14 @@ ASM_GLOBAL ASM_PFX(GasketPosixFileSetPossition)
ASM_PFX(GasketPosixFileSetPossition): ASM_PFX(GasketPosixFileSetPossition):
pushl %ebp pushl %ebp
movl %esp, %ebp movl %esp, %ebp
subl $24, %esp // sub extra 16 from the stack for alignment subl $40, %esp // sub extra 16 from the stack for alignment
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call
movl 12(%ebp), %eax movl 12(%ebp), %eax
movl %eax, 4(%esp) movl 16(%ebp), %ecx
movl 8(%ebp), %eax movl %ecx, 8(%esp)
movl %eax, (%esp) movl %eax, 4(%esp)
movl 8(%ebp), %eax
movl %eax, (%esp)
call ASM_PFX(PosixFileSetPossition) call ASM_PFX(PosixFileSetPossition)