Cache Flush Routines
Other versions of this page are also available for the following:
8/27/2008
Instruction and data caches are flushed based on the CPU architecture and the kernel.
Data Cache Flush
The data cache flush function OEMCacheRangeFlush is called to flush the data cache by determining how many cache lines are available and then flushing each line until all lines have been flushed.
Note
The old data cache flush function, FlushDCache, is deprecated and should never be used.
OEMCacheRangeFlush is called in the following cases:
- CacheSync is called. This is a public API that anyone can call.
- When the kernel loads DLLs or executable files.
- Whenever the kernel debugger is active.
Instruction Cache Flush
The instruction cache flush function OEMCacheRangeFlush is called at various times to flush the instruction cache by determining how many cache lines are available and then flushing each line until all lines have been flushed.
Note
The old instruction cache flush function, FlushICache, is deprecated and should never be used.
OEMCacheRangeFlush is called in the following cases:
CacheSync is called with flags CACHE_SYNC_INSTRUCTIONS or CACHE_SYNC_DISCARD. This is a public API that anyone can call.
When DLLs or executable files are loaded or paged in by the kernel.
Whenever the kernel debugger is performing active.
Note
On x86-based hardware platforms, there is only one cache flush routine called OEMFlushCache.