mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +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 fs, ax
|
||||||
mov gs, ax
|
mov gs, ax
|
||||||
|
|
||||||
|
; Special case for SysCallReturnToCore.
|
||||||
|
cmp r10, 0
|
||||||
|
je coreReturnAddress
|
||||||
|
|
||||||
; Save User Stack pointers and switch to Core SysCall Stack.
|
; Save User Stack pointers and switch to Core SysCall Stack.
|
||||||
mov rax, [ASM_PFX(gCoreSysCallStackTop)]
|
mov rax, [ASM_PFX(gCoreSysCallStackTop)]
|
||||||
sub rax, 8
|
sub rax, 8
|
||||||
@ -229,6 +233,8 @@ ASM_PFX(CallRing3):
|
|||||||
o64 sysret
|
o64 sysret
|
||||||
|
|
||||||
coreReturnAddress:
|
coreReturnAddress:
|
||||||
|
mov rsp, [ASM_PFX(CoreRsp)]
|
||||||
|
mov rbp, [ASM_PFX(CoreRbp)]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
@ -29,4 +29,6 @@ ASM_PFX(_ModuleEntryPoint):
|
|||||||
|
|
||||||
call r8
|
call r8
|
||||||
|
|
||||||
ret
|
mov r10, 0
|
||||||
|
|
||||||
|
syscall
|
||||||
|
@ -2014,6 +2014,7 @@ typedef struct {
|
|||||||
} EFI_BOOT_SERVICES;
|
} EFI_BOOT_SERVICES;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
SysCallReturnToCore = 0,
|
||||||
SysCallLocateProtocol = 1,
|
SysCallLocateProtocol = 1,
|
||||||
SysCallOpenProtocol = 2,
|
SysCallOpenProtocol = 2,
|
||||||
SysCallInstallMultipleProtocolInterfaces = 3,
|
SysCallInstallMultipleProtocolInterfaces = 3,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user