HsaProcessDeviceExceptions
INT64 __fastcall HsaProcessDeviceExceptions(INT64 a1){
_DWORD *v2;
int v3;
int v4;
__int64 i;
UINT64 v6;
UINT8 *a6;
INT64 a7;
INT64 v10;
INT64 v11;
INT64 result[10];
memset((INT64)result, 0i64);
v2 = *(_DWORD **)(a1 + 216);
v3 = 0;
v4 = 0;
if( *v2 )
{
while( 1 )
{
v3 = HalpHsapInitializeReservedDomain(a1, (INT64)&v2[4 * v4 + 2]);
if( v3 < 0 )
break;
v2 = *(_DWORD **)(a1 + 216);
if( (unsigned int)++v4 >= *v2 )
goto LABEL_4;
}
}
else
{
LABEL_4:
for( i = HalpIommuExceptionList; (__int64 *)i != &HalpIommuExceptionList; i = *(_QWORD *)i )
{
if( *(_DWORD *)(i + 16) == *(_DWORD *)(a1 + 160) )
{
memset((INT64)result, 0i64);
v6 = *(unsigned int *)(i + 24);
LODWORD(a7) = 1;
LODWORD(a6) = 1;
result[0] = 1i64;
HsaUpdateDeviceTableEntry((UINT64 *)a1, v6, 0i64, 1, (INT64)result, a6, a7, v10, v11, 0i64);
}
}
}
return(unsigned int)v3;
}Referenced by:
HsaInitializeIommu