12#ifndef ZEPHYR_INCLUDE_ARCH_CACHE_H_ 
   13#define ZEPHYR_INCLUDE_ARCH_CACHE_H_ 
   22#if defined(CONFIG_ARM64) 
   24#elif defined(CONFIG_XTENSA) 
   28#if defined(CONFIG_DCACHE) 
   35extern void arch_dcache_enable(
void);
 
   37#define cache_data_enable arch_dcache_enable 
   44extern void arch_dcache_disable(
void);
 
   46#define cache_data_disable arch_dcache_disable 
   57extern int arch_dcache_flush_all(
void);
 
   59#define cache_data_flush_all arch_dcache_flush_all 
   70extern int arch_dcache_invd_all(
void);
 
   72#define cache_data_invd_all arch_dcache_invd_all 
   83extern int arch_dcache_flush_and_invd_all(
void);
 
   85#define cache_data_flush_and_invd_all arch_dcache_flush_and_invd_all 
   99extern int arch_dcache_flush_range(
void *addr, 
size_t size);
 
  101#define cache_data_flush_range(addr, size) arch_dcache_flush_range(addr, size) 
  115extern int arch_dcache_invd_range(
void *addr, 
size_t size);
 
  117#define cache_data_invd_range(addr, size) arch_dcache_invd_range(addr, size) 
  132extern int arch_dcache_flush_and_invd_range(
void *addr, 
size_t size);
 
  134#define cache_data_flush_and_invd_range(addr, size) \ 
  135        arch_dcache_flush_and_invd_range(addr, size) 
  137#if defined(CONFIG_DCACHE_LINE_SIZE_DETECT) 
  152extern size_t arch_dcache_line_size_get(
void);
 
  154#define cache_data_line_size_get arch_dcache_line_size_get 
  160#if defined(CONFIG_ICACHE) 
  167extern void arch_icache_enable(
void);
 
  169#define cache_instr_enable arch_icache_enable 
  176extern void arch_icache_disable(
void);
 
  178#define cache_instr_disable arch_icache_disable 
  189extern int arch_icache_flush_all(
void);
 
  191#define cache_instr_flush_all arch_icache_flush_all 
  202extern int arch_icache_invd_all(
void);
 
  204#define cache_instr_invd_all arch_icache_invd_all 
  215extern int arch_icache_flush_and_invd_all(
void);
 
  217#define cache_instr_flush_and_invd_all arch_icache_flush_and_invd_all 
  231extern int arch_icache_flush_range(
void *addr, 
size_t size);
 
  233#define cache_instr_flush_range(addr, size) arch_icache_flush_range(addr, size) 
  247extern int arch_icache_invd_range(
void *addr, 
size_t size);
 
  249#define cache_instr_invd_range(addr, size) arch_icache_invd_range(addr, size) 
  263extern int arch_icache_flush_and_invd_range(
void *addr, 
size_t size);
 
  265#define cache_instr_flush_and_invd_range(addr, size) \ 
  266        arch_icache_flush_and_invd_range(addr, size) 
  268#if defined(CONFIG_ICACHE_LINE_SIZE_DETECT) 
  284extern size_t arch_icache_line_size_get(
void);
 
  286#define cache_instr_line_size_get arch_icache_line_size_get