Add BlockIO support to the emulator, still needs testing. Also update Emulator start code to only pass 2 args in place of 3. The 3rd argument is not needed. Still need a function as the BaseLib functoin does not have the correct calling conventions. Cleanup build script for binary shell case.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11718 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
1053
InOsEmuPkg/Unix/Sec/BlockIo.c
Normal file
1053
InOsEmuPkg/Unix/Sec/BlockIo.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -458,7 +458,6 @@ SecLoadFromCore (
|
||||
(SWITCH_STACK_ENTRY_POINT) (UINTN) PeiCoreEntryPoint,
|
||||
SecCoreData,
|
||||
(VOID *)gPpiList,
|
||||
NULL,
|
||||
TopOfStack
|
||||
);
|
||||
//
|
||||
|
@@ -283,7 +283,6 @@ PeiSwitchStacks (
|
||||
IN SWITCH_STACK_ENTRY_POINT EntryPoint,
|
||||
IN VOID *Context1, OPTIONAL
|
||||
IN VOID *Context2, OPTIONAL
|
||||
IN VOID *Context3, OPTIONAL
|
||||
IN VOID *NewStack
|
||||
);
|
||||
|
||||
|
@@ -16,7 +16,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# Routine Description:
|
||||
#
|
||||
# Routine for switching stacks with 3 parameters EFI ABI
|
||||
# Routine for switching stacks with 2 parameters EFI ABI
|
||||
# Convert UNIX to EFI ABI
|
||||
#
|
||||
# Arguments:
|
||||
@@ -24,8 +24,7 @@
|
||||
# (rdi) EntryPoint - Entry point with new stack.
|
||||
# (rsi) Context1 - Parameter1 for entry point. (rcx)
|
||||
# (rdx) Context2 - Parameter2 for entry point. (rdx)
|
||||
# (rcx) Context3 - Parameter3 for entry point. (r8)
|
||||
# (r8) NewStack - The pointer to new stack.
|
||||
# (rcx) NewStack - The pointer to new stack.
|
||||
#
|
||||
# Returns:
|
||||
#
|
||||
@@ -37,11 +36,11 @@ ASM_PFX(PeiSwitchStacks):
|
||||
pushq $0 // tells gdb to stop unwinding frame
|
||||
movq %rsp, %rbp
|
||||
|
||||
movq %r8, %rsp
|
||||
movq %rcx, %rsp // update stack pointer
|
||||
|
||||
movq %rdi, %rax
|
||||
movq %rsi, %rcx
|
||||
movq %rcx, %r8
|
||||
movq %rdi, %rax // entry point to %rax
|
||||
movq %rsi, %rcx // Adjust Context1
|
||||
// Context2 already in the rigth spot
|
||||
|
||||
#
|
||||
# Reserve space for register parameters (rcx, rdx, r8 & r9) on the stack,
|
||||
|
Reference in New Issue
Block a user