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 23 extern "C" { 24 #endif 25 __metal_cache_flush(void * addr,unsigned int len)26static inline void __metal_cache_flush(void *addr, unsigned int len) 27 { 28 sys_cache_data_flush_range(addr, len); 29 } 30 __metal_cache_invalidate(void * addr,unsigned int len)31static inline void __metal_cache_invalidate(void *addr, unsigned int len) 32 { 33 sys_cache_data_invd_range(addr, len); 34 } 35 36 #ifdef __cplusplus 37 } 38 #endif 39 40 #endif /* __METAL_ZEPHYR_CACHE__H__ */ 41