HalpRtcDiscover
VOID __stdcall HalpRtcDiscover(){
_LARGE_INTEGER *AcpiTable;
INT64 v1;
INT64 v2;
_TIMER_INITIALIZATION_BLOCK NewTimer;
__int128 v4;
AcpiTable = HalSocGetAcpiTable(0x50434146ui64);
if( AcpiTable
&& (LOBYTE(AcpiTable[1].anonymous_0.LowPart) < 5u || (AcpiTable[13].QuadPart & 0x200000000000i64) == 0)
&& HalSocRequestApi(v1, 0i64, 1i64, 0x10ui64, (char *)&stru_140CF2E80 + 4704) >= 0
&& HalSocRequestApi(v2, 0i64, 7i64, 0x10ui64, (char *)&stru_140CF2E80 + 4688) >= 0 )
{
v4 = 0i64;
memset(&NewTimer, 0i64, sizeof(NewTimer));
NewTimer.Interrupt.Polarity = InterruptPolarityUnknown;
NewTimer.InternalData = &v4;
NewTimer.Header.TableVersion = 1;
NewTimer.FunctionTable.Initialize = (PLONG)HalpRtcInitialize;
NewTimer.Header.TableSize = 144;
NewTimer.FunctionTable.AcknowledgeInterrupt = HalpRtcAcknowledgeInterrupt;
NewTimer.FunctionTable.ArmTimer = (PLONG)HalpRtcArmTimer;
NewTimer.FunctionTable.FixedStall = (PULONG64)HalpRtcFixedStall;
NewTimer.FunctionTable.Stop = HalpRtcStop;
NewTimer.CounterBitWidth = 64;
NewTimer.CounterFrequency = 2048i64;
NewTimer.InternalDataSize = 16;
NewTimer.Capabilities = 2097456;
NewTimer.KnownType = TimerCmosRtc;
NewTimer.Interrupt.LegacyIrq = 8;
HalpTimerRegister(&NewTimer, 0i64);
}
}Referenced by:
HalpTimerRegisterBuiltinPlugins