Files
m241Neelima/vxworks-6.9/target/h/arch/arm/cacheArmArch6.h
T
2026-07-30 11:19:44 +05:30

110 lines
3.4 KiB
C

/* cacheArmArch6.h - ARM ARCH6 cache library header file */
/* Copyright 2004-2005, 2009, 2011 Wind River Systems, Inc.
*
* The right to copy, distribute, modify or otherwise make use
* of this software may be licensed only pursuant to the terms
* of an applicable Wind River license agreement.
*/
/*
modification history
--------------------
01e,30sep11,cwl define functions for cache enable/disable. (WIND00284079)
01d,18feb11,my_ Declare new functions which support L2 cache.
01c,18sep09,j_b add core-specific function ptr for DClearDisable operation
01b,20apr05,jb Fix for SPR 108034
01a,07dec04,jb created
*/
#ifndef __INCcacheArmArch6h
#define __INCcacheArmArch6h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _ASMLANGUAGE
/*
* Common definitions for Arm Arch6 Cache support
*/
extern STATUS cacheAimArch6IEnable (void);
extern STATUS cacheAimArch6DEnable (void);
extern STATUS cacheAimArch6IDisable (void);
extern STATUS cacheAimArch6DDisable (void);
extern STATUS cacheAimArch6IProbe (void);
extern STATUS cacheAimArch6DProbe (void);
extern BOOL cacheAimArch6IIsOn (void);
extern BOOL cacheAimArch6DIsOn (void);
extern STATUS cacheAimArch6TextUpdate (void * start, UINT32 count, UINT32 IcacheLineSize, UINT32 DcacheLineSize);
extern void * cacheAimArch6DmaMalloc (size_t bytes);
extern STATUS cacheAimArch6DmaFree (void * pBuf);
extern BOOL cacheAimArch6MmuIsOn (void);
extern STATUS cacheAimArch6DInvalidate (void * start, void * end, UINT32 step);
extern STATUS cacheAimArch6DInvalidateAll (void);
extern STATUS cacheAimArch6IInvalidate (void * start, void * end, UINT32 step);
extern STATUS cacheAimArch6IInvalidateAll (void);
extern STATUS cacheAimArch6DFlush (void * start, void * end, UINT32 step);
extern STATUS cacheAimArch6DFlushAll (void);
extern STATUS cacheAimArch6DClear (void * start, void * end, UINT32 step);
extern STATUS cacheAimArch6PipeFlush (void);
extern void cacheAimArch6IMB (void);
extern void cacheAimArch6IClearDisable (void);
extern void cacheAimArch6DClearDisableWithVerify (void);
extern void cacheAimArch6DClearDisableNoVerify (void);
extern UINT32 cacheAimArch6Identify (void);
extern FUNCPTR sysCacheLibInit;
extern UINT32 cacheArchState;
extern STATUS cacheArchIInvalidate(void * start, void * end, UINT32 step);
extern STATUS cacheArchIInvalidateAll(void);
extern STATUS cacheArchDFlush(void * start, void * end, UINT32 step);
extern STATUS cacheArchDFlushAll(void);
extern STATUS cacheArchDInvalidate(void * start, void * end, UINT32 step);
extern STATUS cacheArchDInvalidateAll(void);
extern STATUS cacheArchDClear(void * start, void * end, UINT32 step);
extern STATUS cacheArchDClearAll (void);
/*
* Core-specific function pointer for D-cache ClearDisable operation.
* These must be initialized by the cacheAim<core>LibInit() routine.
*/
extern VOIDFUNCPTR _func_cacheAimArch6DClearDisable;
extern void (*_pSysL2CacheEnable)(CACHE_TYPE cacheType);
extern void (*_pSysL2CacheDisable)(CACHE_TYPE cacheType);
extern void (*_pSysL2CacheInvFunc)(CACHE_TYPE cacheType, void * start, void * end);
extern void (*_pSysL2CacheFlush)(CACHE_TYPE cacheType, void * start, void * end);
extern void (*_pSysL2CacheClear)(CACHE_TYPE cacheType, void * start, void * end);
extern void cacheArchL2CacheEnable(void);
extern void cacheArchL2CacheDisable(void);
extern BOOL cacheArchL2CacheIsOn(void);
#endif
#ifdef __cplusplus
}
#endif
#endif /* __INCcacheArmArch6h */