libmetal
cache.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018, Linaro Limited. and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/*
8 * @file zephyr/cache.h
9 * @brief Zephyr cache operation primitives for libmetal.
10 */
11
12#ifndef __METAL_CACHE__H__
13#error "Include metal/cache.h instead of metal/zephyr/cache.h"
14#endif
15
16#ifndef __METAL_ZEPHYR_CACHE__H__
17#define __METAL_ZEPHYR_CACHE__H__
18
19#include <zephyr/cache.h>
20#include <metal/utilities.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26static inline void __metal_cache_flush(void *addr, unsigned int len)
27{
28 sys_cache_data_range(addr, len, K_CACHE_WB);
29}
30
31static inline void __metal_cache_invalidate(void *addr, unsigned int len)
32{
33 sys_cache_data_range(addr, len, K_CACHE_INVD);
34}
35
36#ifdef __cplusplus
37}
38#endif
39
40#endif /* __METAL_ZEPHYR_CACHE__H__ */
static void __metal_cache_invalidate(void *addr, unsigned int len)
Definition: cache.h:31
static void __metal_cache_flush(void *addr, unsigned int len)
Definition: cache.h:26