HalpVerifySratEntryLengthAndFlag
NTSTATUS __stdcall HalpVerifySratEntryLengthAndFlag(_ACPI_SRAT_ENTRY *SratEntry){
char v1;
NTSTATUS result;
unsigned int v4;
char v5;
bool v6;
if( !SratEntry->Type )
{
result = SratEntry->X2ApicAffinity.ProximityDomain;
v4 = 16;
LABEL_11:
v5 = 1;
v6 = (result & 1) == 0;
goto LABEL_12;
}
if( SratEntry->Type != 1 )
{
if( SratEntry->Type == 2 )
{
result = SratEntry->MemoryAffinity.Base.anonymous_0.HighPart;
v4 = v1 != 0 ? 24 : 16;
}
else
{
if( SratEntry->Type != 3 )
{
LOBYTE(result) = 0;
return result;
}
result = (NTSTATUS)SratEntry->GiccAffinity.Flags;
v4 = 18;
}
goto LABEL_11;
}
v5 = 1;
v4 = 40;
if( (*((_BYTE *)&SratEntry->GiccAffinity + 26) & 1) != 0 )
{
v6 = SratEntry->MemoryAffinity.Length == 0;
LABEL_12:
if( !v6 )
{
result = SratEntry->Length;
if( result >= v4 )
goto LABEL_15;
}
}
v5 = 0;
LABEL_15:
LOBYTE(result) = v5;
return result;
}Referenced by:
HalpGetNumaProcMemoryCount
HalpNumaInitializeStaticConfiguration