Zephyr Project API  3.3.0
A Scalable Open Source RTOS
cache.h
Go to the documentation of this file.
1/*
2 * Copyright 2021 Carlo Caione <ccaione@baylibre.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_DRIVERS_CACHE_H_
13#define ZEPHYR_INCLUDE_DRIVERS_CACHE_H_
14
22#include <zephyr/cache.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#if defined(CONFIG_DCACHE)
29
35void cache_data_enable(void);
36
42void cache_data_disable(void);
43
53int cache_data_flush_all(void);
54
64int cache_data_invd_all(void);
65
75int cache_data_flush_and_invd_all(void);
76
89int cache_data_flush_range(void *addr, size_t size);
90
103int cache_data_invd_range(void *addr, size_t size);
104
117int cache_data_flush_and_invd_range(void *addr, size_t size);
118
119#if defined(CONFIG_DCACHE_LINE_SIZE_DETECT)
133size_t cache_data_line_size_get(void);
134
135#endif /* CONFIG_DCACHE_LINE_SIZE_DETECT */
136
137#endif /* CONFIG_DCACHE */
138
139#if defined(CONFIG_ICACHE)
140
146void cache_instr_enable(void);
147
153void cache_instr_disable(void);
154
164int cache_instr_flush_all(void);
165
175int cache_instr_invd_all(void);
176
186int cache_instr_flush_and_invd_all(void);
187
200int cache_instr_flush_range(void *addr, size_t size);
201
214int cache_instr_invd_range(void *addr, size_t size);
215
228int cache_instr_flush_and_invd_range(void *addr, size_t size);
229
230#ifdef CONFIG_ICACHE_LINE_SIZE_DETECT
244size_t cache_instr_line_size_get(void);
245
246#endif /* CONFIG_ICACHE_LINE_SIZE_DETECT */
247
248#endif /* CONFIG_ICACHE */
249
250#ifdef __cplusplus
251}
252#endif
253
258#endif /* ZEPHYR_INCLUDE_DRIVERS_CACHE_H_ */
cache API interface