HalpInterruptSetLineStateInternal
__int64 __fastcall HalpInterruptSetLineStateInternal(__int64 a1, __int64 a2, __int64 a3){
int v3;
unsigned int v4;
__int64 result;
__int16 v7;
v3 = *(_DWORD *)(a3 + 12);
v4 = v3 | 1;
if( (v3 & 0x30) != 16 )
v4 = *(_DWORD *)(a3 + 12) & 0xFFFFFFFE;
*(_DWORD *)(a3 + 12) = v4;
if( (*(_DWORD *)(a1 + 220) & 0x200) != 0 )
{
_disable();
result = (*(__int64(__fastcall **)(_QWORD, __int64))(a1 + 112))(*(_QWORD *)(a1 + 16), a2);
if( (v7 & 0x200) != 0 )
_enable();
}
else
{
result = (*(__int64(__fastcall **)(_QWORD, __int64))(a1 + 112))(*(_QWORD *)(a1 + 16), a2);
}
if( (int)result < 0 )
{
*(_DWORD *)(a1 + 296) = result;
HalpInterruptLastProblem = 7;
*(_DWORD *)(a1 + 292) = 7;
*(_QWORD *)(a1 + 304) = "minkernel\\hals\\lib\\interrupts\\common\\intsup.c";
*(_DWORD *)(a1 + 312) = 3150;
}
return result;
}Referenced by:
HalDisableInterrupt
HalpConnectThermalInterrupt
HalpInitializeCmciVector
HalpInitializeDeferredErrorVector
HalpInterruptEnablePerformanceEvents
HalpInterruptMaskAcpi
HalpInterruptMaskLevelTriggeredLines
HalpInterruptRemapFixedLines
HalpInterruptRestoreClock
HalpInterruptRestoreController
HalpInterruptServiceActiveBoth
HalpInterruptSetDestinationInternal
HalpInterruptSetLineState
HalpInterruptSetRemappedDestinationHv
HalpMaskInterrupt
HalpUnmaskInterrupt