HalpInterruptSetDestination
__int64 __fastcall HalpInterruptSetDestination(int *a1, __int64 a2, unsigned int *a3){
unsigned __int64 v5;
unsigned int v6;
__int64 v9;
int v10[2];
__int64 v11;
int *v12;
int v13;
int v14;
v10[1] = 0;
v9 = 0i64;
if( qword_140C4A168 )
return(unsigned int)HalpInterruptSetRemappedDestinationHv(a3, a1, a2);
if( (*(_DWORD *)(HalpInterruptController + 220) & 0x100) != 0 )
return(unsigned int)HalpInterruptSetRemappedDestination(
(UINT64)a3,
(_INTERRUPT_VECTOR_DATA *)a1,
(_GROUP_AFFINITY *)a2);
if( !a3 )
return(unsigned int)-1073741811;
if( (int)HalpInterruptGsiToLine(*a3, &v9) < 0 )
{
HalpInterruptLastProblem = 18;
return(unsigned int)-1073741811;
}
v13 = -1;
v12 = a1 + 10;
v10[0] = 1;
v11 = a2;
v14 = 1;
v5 = (unsigned __int8)HalpAcquireHighLevelLock(&HalpInterruptLock);
v6 = HalpInterruptSetDestinationInternal(&v9, (__int64)v10, (__int64)&v13);
KxReleaseSpinLock(&HalpInterruptLock);
__writecr8(v5);
return v6;
}Referenced by:
ExtEnvSetVpptTarget