ADD_MAP_REGISTERS
void __fastcall ADD_MAP_REGISTERS(__int64 a1, unsigned int a2, char a3){
unsigned __int32 v5;
UINT64 Param3;
UINT64 v8;
UINT64 v9;
v5 = a2 + _InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 160), a2);
_InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 156), a2);
Param3 = *(unsigned int *)(a1 + 152);
if( a2 > (unsigned int)Param3 )
{
ViHalPreprocessOptions(
&Param4,
(PSTR)"Allocating too many map registers at a time: %x(max %x).",
0xCui64,
a2,
Param3,
0i64,
v9);
VfReportIssueWithOptions(0xE6ui64, 0xCui64, a2, *(unsigned int *)(a1 + 152), 0i64, &Param4);
}
if( !a3 )
{
v8 = *(unsigned int *)(a1 + 152);
if( v5 > (unsigned int)v8 )
{
ViHalPreprocessOptions(
&dword_140C12CBC,
(PSTR)"Allocated too many map registers : %x(max %x).",
0x15ui64,
v5,
v8,
0i64,
v9);
VfReportIssueWithOptions(0xE6ui64, 0x15ui64, v5, *(unsigned int *)(a1 + 152), 0i64, &dword_140C12CBC);
}
}
}Referenced by:
VfAllocateAdapterChannel
VfAllocateAdapterChannelEx
VfAllocateCrashDumpRegisters
VfHalAllocateMapRegisters
ViScatterGatherCallback