mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-23 13:44:33 +02:00
Ring3: Fixed missing Ring3Call result.
This commit is contained in:
parent
1836c35027
commit
d704a3c6e7
@ -122,6 +122,7 @@ Ring3Call (
|
|||||||
IN RING3_CALL_DATA *Data
|
IN RING3_CALL_DATA *Data
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
FUNCTION_0 Function0;
|
FUNCTION_0 Function0;
|
||||||
FUNCTION_1 Function1;
|
FUNCTION_1 Function1;
|
||||||
FUNCTION_2 Function2;
|
FUNCTION_2 Function2;
|
||||||
@ -132,33 +133,33 @@ Ring3Call (
|
|||||||
switch (Data->NumberOfArguments) {
|
switch (Data->NumberOfArguments) {
|
||||||
case 0:
|
case 0:
|
||||||
Function0 = (FUNCTION_0)Data->EntryPoint;
|
Function0 = (FUNCTION_0)Data->EntryPoint;
|
||||||
Function0 ();
|
Status = Function0 ();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
Function1 = (FUNCTION_1)Data->EntryPoint;
|
Function1 = (FUNCTION_1)Data->EntryPoint;
|
||||||
Function1 (Data->Arguments[0]);
|
Status = Function1 (Data->Arguments[0]);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
Function2 = (FUNCTION_2)Data->EntryPoint;
|
Function2 = (FUNCTION_2)Data->EntryPoint;
|
||||||
Function2 (Data->Arguments[0], Data->Arguments[1]);
|
Status = Function2 (Data->Arguments[0], Data->Arguments[1]);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
Function3 = (FUNCTION_3)Data->EntryPoint;
|
Function3 = (FUNCTION_3)Data->EntryPoint;
|
||||||
Function3 (Data->Arguments[0], Data->Arguments[1], Data->Arguments[2]);
|
Status = Function3 (Data->Arguments[0], Data->Arguments[1], Data->Arguments[2]);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
Function4 = (FUNCTION_4)Data->EntryPoint;
|
Function4 = (FUNCTION_4)Data->EntryPoint;
|
||||||
Function4 (Data->Arguments[0], Data->Arguments[1], Data->Arguments[2], Data->Arguments[3]);
|
Status = Function4 (Data->Arguments[0], Data->Arguments[1], Data->Arguments[2], Data->Arguments[3]);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
Function5 = (FUNCTION_5)Data->EntryPoint;
|
Function5 = (FUNCTION_5)Data->EntryPoint;
|
||||||
Function5 (Data->Arguments[0], Data->Arguments[1], Data->Arguments[2], Data->Arguments[3], Data->Arguments[4]);
|
Status = Function5 (Data->Arguments[0], Data->Arguments[1], Data->Arguments[2], Data->Arguments[3], Data->Arguments[4]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
SysCall (SysCallReturnToCore);
|
SysCall (SysCallReturnToCore, Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
@ -223,6 +223,7 @@ o64 sysret
|
|||||||
coreReturnAddress:
|
coreReturnAddress:
|
||||||
mov rsp, [ASM_PFX(CoreRsp)]
|
mov rsp, [ASM_PFX(CoreRsp)]
|
||||||
mov rbp, [ASM_PFX(CoreRbp)]
|
mov rbp, [ASM_PFX(CoreRbp)]
|
||||||
|
mov rax, rdx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user