HalpPciGetHpetInterruptSource
NTSTATUS __stdcall HalpPciGetHpetInterruptSource(CHAR a1, INT64 a2, INT64 *a3, INT64 *a4){
int HpetInterruptSourceAmd;
_LARGE_INTEGER *AcpiTable;
int v10;
_LARGE_INTEGER *v11;
int v12;
HpetInterruptSourceAmd = -1073741275;
AcpiTable = HalSocGetAcpiTable(0x52414D44ui64);
v10 = 0;
if( !AcpiTable
|| (HpetInterruptSourceAmd = HalpPciGetHpetInterruptSourceIntel((INT64)AcpiTable, a1, a2),
HpetInterruptSourceAmd == -1073741275) )
{
v11 = HalSocGetAcpiTable(0x53525649ui64);
if( v11 )
HpetInterruptSourceAmd = HalpPciGetHpetInterruptSourceAmd((INT64)v11, a1, a2);
}
if( HpetInterruptSourceAmd < 0 )
{
*(_QWORD *)(a2 + 4) = 0i64;
*(_DWORD *)a2 = 0;
*(_DWORD *)a3 = 0;
}
else
{
*(_DWORD *)a3 = (*(_DWORD *)(a2 + 4) << 8) | *(unsigned __int8 *)(a2 + 8);
*(_DWORD *)a4 = 0;
v12 = *(_BYTE *)(a2 + 9) & 0x1F;
*(_DWORD *)a4 = v12;
v10 = v12 | (32 * (*(_BYTE *)(a2 + 10) & 7));
}
*(_DWORD *)a4 = v10;
return HpetInterruptSourceAmd;
}Referenced by:
HalpTimerRegister