Add trampoline support and move assembler prototypes
This commit is contained in:
@@ -131,3 +131,17 @@ XpaTemporaryGdtDesc: .quad 0x0000000000000000, 0x00CF9A000000FFFF, 0x00AF9A00000
|
||||
|
||||
.global ArEnableExtendedPhysicalAddressingEnd
|
||||
ArEnableExtendedPhysicalAddressingEnd:
|
||||
|
||||
|
||||
/**
|
||||
* Starts an application processor (AP). This is just a stub.
|
||||
*
|
||||
* @return This routine does not return any value.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
.global ArStartApplicationProcessor
|
||||
ArStartApplicationProcessor:
|
||||
|
||||
.global ArStartApplicationProcessorEnd
|
||||
ArStartApplicationProcessorEnd:
|
||||
|
@@ -23,6 +23,31 @@ AR::ProcSup::GetBootStack(VOID)
|
||||
return (PVOID)BootStack;
|
||||
}
|
||||
|
||||
XTAPI
|
||||
VOID
|
||||
AR::ProcSup::GetTrampolineInformation(IN TRAMPOLINE_TYPE TrampolineType,
|
||||
OUT PVOID *TrampolineCode,
|
||||
OUT PULONG_PTR TrampolineSize)
|
||||
{
|
||||
switch(TrampolineType)
|
||||
{
|
||||
case TrampolineApStartup:
|
||||
*TrampolineCode = (PVOID)ArStartApplicationProcessor;
|
||||
*TrampolineSize = (ULONG_PTR)ArStartApplicationProcessorEnd -
|
||||
(ULONG_PTR)ArStartApplicationProcessor;
|
||||
break;
|
||||
case TrampolineEnableXpa:
|
||||
*TrampolineCode = (PVOID)ArEnableExtendedPhysicalAddressing;
|
||||
*TrampolineSize = (ULONG_PTR)ArEnableExtendedPhysicalAddressingEnd -
|
||||
(ULONG_PTR)ArEnableExtendedPhysicalAddressing;
|
||||
break;
|
||||
default:
|
||||
*TrampolineCode = NULLPTR;
|
||||
*TrampolineSize = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Identifies processor type (vendor, model, stepping) as well as looks for available CPU features and stores them
|
||||
* in Processor Control Block (PRCB).
|
||||
|
Reference in New Issue
Block a user