mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-07 19:45:07 +02:00
Ring3: Added SysCallReturnToCore.
This commit is contained in:
parent
e5f7eb7654
commit
a72b753f60
@ -123,6 +123,10 @@ ASM_PFX(CoreBootServices):
|
||||
mov fs, ax
|
||||
mov gs, ax
|
||||
|
||||
; Special case for SysCallReturnToCore.
|
||||
cmp r10, 0
|
||||
je coreReturnAddress
|
||||
|
||||
; Save User Stack pointers and switch to Core SysCall Stack.
|
||||
mov rax, [ASM_PFX(gCoreSysCallStackTop)]
|
||||
sub rax, 8
|
||||
@ -229,6 +233,8 @@ ASM_PFX(CallRing3):
|
||||
o64 sysret
|
||||
|
||||
coreReturnAddress:
|
||||
mov rsp, [ASM_PFX(CoreRsp)]
|
||||
mov rbp, [ASM_PFX(CoreRbp)]
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
|
@ -28,5 +28,7 @@ ASM_PFX(_ModuleEntryPoint):
|
||||
mov rdx, r9
|
||||
|
||||
call r8
|
||||
|
||||
ret
|
||||
|
||||
mov r10, 0
|
||||
|
||||
syscall
|
||||
|
@ -2014,6 +2014,7 @@ typedef struct {
|
||||
} EFI_BOOT_SERVICES;
|
||||
|
||||
typedef enum {
|
||||
SysCallReturnToCore = 0,
|
||||
SysCallLocateProtocol = 1,
|
||||
SysCallOpenProtocol = 2,
|
||||
SysCallInstallMultipleProtocolInterfaces = 3,
|
||||
|
Loading…
x
Reference in New Issue
Block a user