Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
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
13#ifndef ZEPHYR_INCLUDE_DRIVERS_CACHE_H_
14#define ZEPHYR_INCLUDE_DRIVERS_CACHE_H_
15
16#include <stddef.h>
17
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#if defined(CONFIG_DCACHE)
30
36void cache_data_enable(void);
37
43void cache_data_disable(void);
44
53int cache_data_flush_all(void);
54
63int cache_data_invd_all(void);
64
74
93int cache_data_flush_range(void *addr, size_t size);
94
114int cache_data_invd_range(void *addr, size_t size);
115
135int cache_data_flush_and_invd_range(void *addr, size_t size);
136
137#if defined(CONFIG_DCACHE_LINE_SIZE_DETECT)
151size_t cache_data_line_size_get(void);
152
153#endif /* CONFIG_DCACHE_LINE_SIZE_DETECT */
154
155#endif /* CONFIG_DCACHE */
156
157#if defined(CONFIG_ICACHE)
158
164void cache_instr_enable(void);
165
171void cache_instr_disable(void);
172
181int cache_instr_flush_all(void);
182
191int cache_instr_invd_all(void);
192
202
221int cache_instr_flush_range(void *addr, size_t size);
222
242int cache_instr_invd_range(void *addr, size_t size);
243
263int cache_instr_flush_and_invd_range(void *addr, size_t size);
264
265#ifdef CONFIG_ICACHE_LINE_SIZE_DETECT
279size_t cache_instr_line_size_get(void);
280
281#endif /* CONFIG_ICACHE_LINE_SIZE_DETECT */
282
283#endif /* CONFIG_ICACHE */
284
285#ifdef __cplusplus
286}
287#endif
288
292
293#endif /* ZEPHYR_INCLUDE_DRIVERS_CACHE_H_ */
#define cache_instr_invd_all
Definition cache.h:229
#define cache_instr_disable
Definition cache.h:203
#define cache_instr_flush_all
Definition cache.h:216
#define cache_data_flush_and_invd_range(addr, size)
Definition cache.h:159
#define cache_instr_invd_range(addr, size)
Definition cache.h:289
#define cache_instr_flush_and_invd_all
Definition cache.h:242
#define cache_instr_enable
Definition cache.h:194
#define cache_instr_flush_range(addr, size)
Definition cache.h:265
#define cache_data_invd_range(addr, size)
Definition cache.h:134
#define cache_instr_flush_and_invd_range(addr, size)
Definition cache.h:313
#define cache_data_invd_all
Definition cache.h:74
#define cache_data_flush_range(addr, size)
Definition cache.h:110
#define cache_data_flush_and_invd_all
Definition cache.h:87
#define cache_data_flush_all
Definition cache.h:61
#define cache_data_enable
Definition cache.h:39
#define cache_instr_line_size_get
Definition cache.h:334
#define cache_data_disable
Definition cache.h:48
#define cache_data_line_size_get
Definition cache.h:179