PpmCheckResetProcessors
INT64 __fastcall PpmCheckResetProcessors(INT64 a1){
unsigned int v1;
INT64 result;
__int64 v4;
INT64 i;
__int64 v6;
__int64 v7;
unsigned int j;
__int64 v9;
v1 = 0;
if( a1 )
{
result = PopExecuteOnTargetProcessors(a1 + 24, (INT64)PpmCheckReset, 0i64, 0i64);
if( *(_DWORD *)(a1 + 200) )
{
do
{
result = v1;
v7 = *(_QWORD *)(a1 + 216) + 136i64 * v1;
if( *(_DWORD *)(v7 + 16) == 1 )
result = PpmResetPerfTimes(*(_QWORD *)v7, v6);
++v1;
}
while( v1 < *(_DWORD *)(a1 + 200) );
}
}
else
{
result = PopExecuteOnTargetProcessors((INT64)&PpmCheckRegistered, (INT64)PpmCheckReset, 0i64, 0i64);
for( i = PpmPerfDomainHead; (INT64 *)i != &PpmPerfDomainHead; i = *(_QWORD *)i )
{
for( j = 0; j < *(_DWORD *)(i + 200); ++j )
{
result = j;
v9 = *(_QWORD *)(i + 216) + 136i64 * j;
if( *(_DWORD *)(v9 + 16) == 1 )
result = PpmResetPerfTimes(*(_QWORD *)v9, v4);
}
}
}
return result;
}Referenced by:
PpmCheckArmPeriod
PpmRegisterPerfStates