Adding Simple Pointer, GOP, SimpleTextInEx, and Networking protocols to the emulator. Cleaned up POSIX include situation by centralizing it in a single file, like NT32. Fixed TPL issue with TPL High not being emulated correctly, it was possible to take a timer tick when the locks in the DXE core should have prevented this. Remove some unused files to make things easier to maintain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11105 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -127,6 +127,31 @@ _GasketUintnUintnUintnUintn:
|
||||
leave
|
||||
ret
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#------------------------------------------------------------------------------
|
||||
.globl _GasketUintnUintnUintnUintnUintn
|
||||
_GasketUintnUintnUintnUintnUintn:
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
subl $50, %esp # sub extra 0x10 from the stack for the AND
|
||||
and $-16, %esp # stack needs to end in 0xFFFFFFF0 before call
|
||||
movl 8(%ebp), %eax
|
||||
movl %eax, -12(%ebp)
|
||||
movl 28(%ebp), %eax
|
||||
movl %eax, 16(%esp)
|
||||
movl 24(%ebp), %eax
|
||||
movl %eax, 12(%esp)
|
||||
movl 20(%ebp), %eax
|
||||
movl %eax, 8(%esp)
|
||||
movl 16(%ebp), %eax
|
||||
movl %eax, 4(%esp)
|
||||
movl 12(%ebp), %eax
|
||||
movl %eax, (%esp)
|
||||
movl -12(%ebp), %eax
|
||||
call *%eax
|
||||
leave
|
||||
ret
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#------------------------------------------------------------------------------
|
||||
.globl _GasketUintn10Args
|
||||
@@ -256,6 +281,35 @@ _ReverseGasketUint64:
|
||||
ret
|
||||
|
||||
|
||||
.globl _ReverseGasketUint64Uint64
|
||||
_ReverseGasketUint64Uint64:
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
subl $56, %esp
|
||||
movl 12(%ebp), %eax
|
||||
movl %eax, -32(%ebp)
|
||||
movl 16(%ebp), %eax
|
||||
movl %eax, -28(%ebp)
|
||||
movl 20(%ebp), %eax
|
||||
movl %eax, -40(%ebp)
|
||||
movl 24(%ebp), %eax
|
||||
movl %eax, -36(%ebp)
|
||||
movl 8(%ebp), %eax
|
||||
movl %eax, -12(%ebp)
|
||||
movl -40(%ebp), %eax
|
||||
movl -36(%ebp), %edx
|
||||
movl %eax, 8(%esp)
|
||||
movl %edx, 12(%esp)
|
||||
movl -32(%ebp), %eax
|
||||
movl -28(%ebp), %edx
|
||||
movl %eax, (%esp)
|
||||
movl %edx, 4(%esp)
|
||||
movl -12(%ebp), %eax
|
||||
call *%eax
|
||||
leave
|
||||
ret
|
||||
|
||||
|
||||
// Sec PPI Callbacks
|
||||
|
||||
.globl _GasketSecUnixPeiLoadFile
|
||||
@@ -288,4 +342,3 @@ _GasketSecTemporaryRamSupport:
|
||||
jmp _SecTemporaryRamSupport
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
the assembly functions.
|
||||
|
||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -36,6 +36,7 @@ typedef UINT32 UINTN;
|
||||
typedef int (*GASKET_VOID) ();
|
||||
typedef int (*GASKET_UINTN) (UINTN);
|
||||
typedef int (*GASKET_UINT64) (UINT64);
|
||||
typedef int (*GASKET_UINT64UINT64) (UINT64, UINT64);
|
||||
typedef int (*GASKET_UINTN_UINTN) (UINTN, UINTN);
|
||||
typedef int (*GASKET_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN);
|
||||
typedef int (*GASKET_UINTN_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN, UINTN);
|
||||
@@ -149,4 +150,14 @@ ReverseGasketUint64 (void *api, UINT64 a)
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
ReverseGasketUint64UINT64 (void *api, UINT64 a, UINT64 b)
|
||||
{
|
||||
GASKET_UINT64UINT64 func;
|
||||
|
||||
func = (GASKET_UINT64UINT64)api;
|
||||
func (a, b);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user