HalpEfiBugCheckAddPagesCallback
VOID __stdcall HalpEfiBugCheckAddPagesCallback(
KBUGCHECK_CALLBACK_REASON Reason,
KBUGCHECK_REASON_CALLBACK_RECORD *Record,
PVOID ReasonSpecificData){
unsigned int *v4;
unsigned int i;
unsigned int MaximumProcessorCount;
unsigned int v7;
unsigned int v8;
__int64 v9;
__int64 v10;
__int64 v11;
int v12;
*((_QWORD *)ReasonSpecificData + 3) = 0i64;
*((_DWORD *)ReasonSpecificData + 2) = 0;
if( HalFirmwareTypeEfi && HalpInterruptProcessorPcr )
{
v4 = *(unsigned int **)ReasonSpecificData;
if( !*(_QWORD *)ReasonSpecificData )
{
*(_QWORD *)ReasonSpecificData = &HalpEfiBugcheckCallbackNextRuntimeServiceIndex;
HalpEfiBugcheckCallbackNextRuntimeServiceIndex = 0;
v4 = *(unsigned int **)ReasonSpecificData;
}
for( i = *v4; i < 9; ++i )
{
++*v4;
MaximumProcessorCount = HalQueryMaximumProcessorCount();
v7 = 0;
v8 = MaximumProcessorCount;
if( MaximumProcessorCount )
{
v9 = 0i64;
while( 1 )
{
v10 = *(_QWORD *)(v9 + HalpInterruptProcessorPcr);
if( v10 )
{
v11 = v10 + 192;
if( v11 )
{
v12 = *(_DWORD *)(v11 + 32);
if( _bittest(&v12, i) )
{
if( HalEfiRuntimeServicesBlock[0] )
break;
}
}
}
++v7;
v9 += 8i64;
if( v7 >= v8 )
goto LABEL_13;
}
*((_DWORD *)ReasonSpecificData + 2) = -2147483647;
*((_QWORD *)ReasonSpecificData + 2) = HalEfiRuntimeServicesBlock[i];
*((_QWORD *)ReasonSpecificData + 3) = 1i64;
return;
}
LABEL_13:
;
}
}
}Referenced by:
No references.