#define IcacheLineSize 32 void __fc (__int64); #pragma intrinsic (__fc) void PioICacheFlush ( unsigned char *BaseAddress, unsigned int Length ) { unsigned char *EndAddress; unsigned long NumberOfLines; if (Length < IcacheLineSize) { Length = IcacheLineSize; } NumberOfLines = Length / IcacheLineSize; if (Length % IcacheLineSize != 0) { NumberOfLines = NumberOfLines+1; } EndAddress = (unsigned char *)(BaseAddress)+(NumberOfLines * IcacheLineSize); do { __fc((__int64)BaseAddress); BaseAddress += IcacheLineSize; } while (BaseAddress < EndAddress); __synci(); __isrlz(); }