HalpQueryMaximumGsiv
INT64 __fastcall HalpQueryMaximumGsiv(UINT64 *GsivValue){
ULONG_PTR *v1;
unsigned int v2;
unsigned int v4;
ULONG_PTR *v5;
_QWORD **v6;
_QWORD *v7;
_DWORD *v8;
int v9;
v1 = (ULONG_PTR *)HalpRegisteredInterruptControllers;
v2 = 0;
v4 = 0;
if( (ULONG_PTR *)HalpRegisteredInterruptControllers == &HalpRegisteredInterruptControllers )
return(unsigned int)-1073741823;
do
{
v5 = v1;
v1 = (ULONG_PTR *)*v1;
v6 = (_QWORD **)(v5 + 30);
v7 = *v6;
while( v7 != v6 )
{
v8 = v7;
v7 = (_QWORD *)*v7;
v9 = v8[7];
if( v9 != -1 && v8[6] - v8[5] + v9 - 1 > v4 )
v4 = v8[6] - v8[5] + v9 - 1;
}
}
while( v1 != &HalpRegisteredInterruptControllers );
if( !v4 )
return(unsigned int)-1073741823;
else
*(_DWORD *)GsivValue = v4;
return v2;
}Referenced by:
HalpInitializeSecondaryInterruptServices