HalpIommuRegisterBuiltinPlugins

INT64 __stdcall HalpIommuRegisterBuiltinPlugins(){
  int v0; 
  unsigned __int64 v1; 
  LARGE_INTEGER *AcpiTable; 
  __int64 a1; 
  a1 = 0i64;
  if( HalpHvIommu && !*(_BYTE *)HalpHvCpuManager )
    return 0i64;
  v0 = HalpIommuHsaDiscover(&a1);
  if( v0 >= 0 )
  {
    if( (a1 & 2) != 0 )
      HalpIommuDmaGuardTableOptIn = 1;
    LOBYTE(a1) = 0;
    v0 = 0;
    v1 = 0i64;
    AcpiTable = HalSocGetAcpiTable(0x52414D44ui64);
    if( AcpiTable )
    {
      v0 = HalpIvtProcessDmarTable((UINT64)AcpiTable, (BYTE *)&a1);
      if( v0 >= 0 )
      {
        if( (_BYTE)a1 )
          v1 = 2i64;
      }
    }
    if( v0 >= 0 && v1 >= 2 )
      HalpIommuDmaGuardTableOptIn = 1;
  }
  return(unsigned int)v0;
}

Referenced by:

HalpIommuInitDiscard