OEMCacheRangeFlush Function Implementation

The Windows CE .NET kernel has replaced calls to FlushDCache, FlushICache and ClearTLB with calls to the OEMCacheRangeFlush function. OEMCacheRangeFlush has been customized for various CPU architectures and componentized into libraries in the CSP directory. These libraries must be included in order for your kernel to link correctly. The following table shows the libraries located in %_WINCEROOT%\Public\Common\Oak\CSP.

CPU architecture Library
MIPS Csp_mips.lib
ARM\ARM720t Csp_arm720t.lib
ARM\ARM920t Csp_arm920t.lib
ARM\Common Csp_arm.lib
ARM\SA11x0 Csp_sa11x0.lib
ARM\XScale Csp_xscale.lib
I486\OAL I486oal.lib
SHX\SH3 Csp_sh3.lib
SHX\SH4 Csp_sh4.lib

Note   ARM builds typically link with one or more CSP libraries.

Some of the CSP routines reference global variables containing cache and TLB size information. Your platform must resolve these variables. You can further optimize such CSP implementations by hard-coding variables in a private implementation of OEMCacheRangeFlush in your platform.

If you want to modify or override CSP implementations of caching code, you must put the relevant source files in the Kernel\Buildexe directory and modify each of the source files in its subdirectories to build the file.

See Also

Cache Flush Routines | How to Develop an OEM Adaptation Layer | How to Migrate a Board Support Package to Windows CE .NET 4.2

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.