HalpInterruptGetIrtInfo
INT64 __fastcall HalpInterruptGetIrtInfo(INT64 *a1){
int v1;
int MaximumProcessorCount;
INT32 v5[4];
v1 = HalpPciMcfgTableSegments;
if( !HalpPciMcfgTableSegments )
v1 = 1;
*(_DWORD *)a1 = v1;
*(_OWORD *)v5 = 0i64;
MaximumProcessorCount = HalQueryMaximumProcessorCount();
*((_DWORD *)a1 + 2) = 0;
*((_DWORD *)a1 + 1) = 150 * MaximumProcessorCount;
if( HalpIsMicrosoftCompatibleHvLoaded() )
{
HalpHvCpuid(0x40000000i64, v5);
if( v5[0] >= 0x40000006u )
{
HalpHvCpuid(1073741830i64, v5);
if( (v5[0] & 0x20) != 0 )
{
HalpHvCpuid(1073741829i64, v5);
if( v5[2] < *((_DWORD *)a1 + 1)
/ (unsigned int)HalQueryMaximumProcessorCount()
* *(_DWORD *)HalpInterruptProcessorsStarted )
*((_DWORD *)a1 + 1) = v5[2] / *(_DWORD *)HalpInterruptProcessorsStarted * HalQueryMaximumProcessorCount();
*((_DWORD *)a1 + 2) = v5[2]
- *((_DWORD *)a1 + 1)
/ (unsigned int)HalQueryMaximumProcessorCount()
* *(_DWORD *)HalpInterruptProcessorsStarted;
}
}
}
return 0i64;
}Referenced by:
HaliQuerySystemInformation
HalpQueryAcpiResourceRequirements