diff options
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/src/cache_.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/shared/src/cache_.h b/c/src/lib/libcpu/powerpc/shared/src/cache_.h index 4d335b6128..17758947e0 100644 --- a/c/src/lib/libcpu/powerpc/shared/src/cache_.h +++ b/c/src/lib/libcpu/powerpc/shared/src/cache_.h @@ -25,6 +25,52 @@ #define CPU_INSTRUCTION_CACHE_ALIGNMENT PPC_CACHE_ALIGNMENT #endif +#define CPU_CACHE_SUPPORT_PROVIDES_CACHE_SIZE_FUNCTIONS + +static inline size_t _CPU_cache_get_data_cache_size(uint32_t level) +{ + switch (level) { + case 0: + /* Fall through */ +#ifdef PPC_CACHE_DATA_L3_SIZE + case 3: + return PPC_CACHE_DATA_L3_SIZE; +#endif +#ifdef PPC_CACHE_DATA_L2_SIZE + case 2: + return PPC_CACHE_DATA_L2_SIZE; +#endif +#ifdef PPC_CACHE_DATA_L1_SIZE + case 1: + return PPC_CACHE_DATA_L1_SIZE; +#endif + default: + return 0; + } +} + +static inline size_t _CPU_cache_get_instruction_cache_size(uint32_t level) +{ + switch (level) { + case 0: + /* Fall through */ +#ifdef PPC_CACHE_INSTRUCTION_L3_SIZE + case 3: + return PPC_CACHE_INSTRUCTION_L3_SIZE; +#endif +#ifdef PPC_CACHE_INSTRUCTION_L2_SIZE + case 2: + return PPC_CACHE_INSTRUCTION_L2_SIZE; +#endif +#ifdef PPC_CACHE_INSTRUCTION_L1_SIZE + case 1: + return PPC_CACHE_INSTRUCTION_L1_SIZE; +#endif + default: + return 0; + } +} + /* * CACHE MANAGER: The following functions are CPU-specific. * They provide the basic implementation for the rtems_* cache |