1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright 2020, Heinrich Schuchardt <xypron.glpk@gmx.de> 4 */ 5 6 #include <cpu_func.h> 7 #include <mapmem.h> 8 #include <asm/state.h> 9 flush_cache(unsigned long addr,unsigned long size)10void flush_cache(unsigned long addr, unsigned long size) 11 { 12 void *ptr; 13 14 ptr = map_sysmem(addr, size); 15 16 /* Clang uses (char *) parameters, GCC (void *) */ 17 __builtin___clear_cache(map_sysmem(addr, size), ptr + size); 18 unmap_sysmem(ptr); 19 } 20 invalidate_icache_all(void)21void invalidate_icache_all(void) 22 { 23 struct sandbox_state *state = state_get_current(); 24 25 /* Clang uses (char *) parameters, GCC (void *) */ 26 __builtin___clear_cache((void *)state->ram_buf, 27 (void *)(state->ram_buf + state->ram_size)); 28 } 29