HalpEfiStartRuntimeCode
NTSTATUS __stdcall HalpEfiStartRuntimeCode(UINT64 a1){
unsigned int v1;
NTSTATUS result;
int *v3;
v1 = a1;
result = KeGetCurrentIrql();
v3 = (int *)&KeGetPcr()->HalReserved[8];
if( (unsigned __int8)result < 2u )
{
while( 1 )
{
while( *v3 < 0 )
_mm_pause();
_m_prefetchw(v3);
result = _InterlockedOr(v3, v1);
if( result >= 0 )
break;
_InterlockedAnd(v3, ~v1);
}
}
else
{
_InterlockedOr(v3, a1);
}
return result;
}Referenced by:
HalEfiGetEnvironmentVariable
HalEfiGetTime
HalEfiQueryCapsuleCapabilities
HalEfiQueryVariableInfo
HalEfiResetSystem
HalEfiSetEnvironmentVariable
HalEfiSetTime
HalEfiUpdateCapsule
HalpEnumerateEnvironmentVariablesWithFilter