HalpPciAccessMmConfigSpace
CHAR __fastcall HalpPciAccessMmConfigSpace(INT16 a1, CHAR a2, CHAR a3, INT64 a4, UINT64 a5, INT64 a6, INT64 a7){
UINT8 v10;
INT64 MmConfigPhysicalAddress;
INT64 v12;
__int64(__fastcall **v13)();
int v15[8];
INT64 v16;
if( (unsigned int)(a5 + a6) > 0x1000 )
return 0;
if( HalpPciCheckAmdK8(a1, a2, a3) )
return 0;
MmConfigPhysicalAddress = HalpPciGetMmConfigPhysicalAddress(a1, a2, v10);
if( !MmConfigPhysicalAddress )
return 0;
v12 = HalpPciMapMmConfigPhysicalAddress(MmConfigPhysicalAddress);
v13 = &HalpPciMmConfigReadHandlers;
LODWORD(v16) = a6;
if( (_DWORD)a7 )
v13 = (__int64(__fastcall **)())&HalpPciMmConfigWriteHandlers;
HalpPCIPerformConfigAccess((INT64)v13, v12, a4, (unsigned int)a5, v16);
_InterlockedOr(v15, 0);
return 1;
}Referenced by:
HalpPCIConfig