HalpInterruptSetRemappedLineStateInternal
__int64 __fastcall HalpInterruptSetRemappedLineStateInternal(__int64 a1, int *a2, __int64 a3){
unsigned int v4;
ULONG_PTR *Lines;
ULONG_PTR v7;
int Priority;
__int64 v9;
__int64 v10;
__int64 v11;
v4 = 0;
Lines = HalpInterruptFindLines(a2);
if( Lines )
{
v7 = Lines[5];
*(_OWORD *)v7 = *(_OWORD *)a3;
*(_OWORD *)(v7 + 16) = *(_OWORD *)(a3 + 16);
*(_OWORD *)(v7 + 32) = *(_OWORD *)(a3 + 32);
*(_QWORD *)(v7 + 48) = *(_QWORD *)(a3 + 48);
Priority = HalpInterruptGetPriority(a1, *(_DWORD *)(a3 + 48));
*(_DWORD *)(*(_QWORD *)(v9 + 40) + v10 + 52) = Priority;
*(_BYTE *)(*(_QWORD *)(v9 + 48) + 16 * v11 + 12) = 1;
}
else
{
HalpInterruptLastProblem = 18;
if( a1 )
{
*(_QWORD *)(a1 + 292) = 18i64;
*(_QWORD *)(a1 + 304) = "minkernel\\hals\\lib\\interrupts\\common\\connect.c";
*(_DWORD *)(a1 + 312) = 3317;
}
return(unsigned int)-1073741811;
}
return v4;
}Referenced by:
HalpInterruptEnableNmi
HalpInterruptRemap
HalpTimerInitializeHypervisorTimer