1292932Sdim// SPDX-License-Identifier: GPL-2.0+
2292932Sdim/*
3353358Sdim * Copyright 2020, Heinrich Schuchardt <xypron.glpk@gmx.de>
4353358Sdim */
5353358Sdim
6292932Sdim#include <cpu_func.h>
7292932Sdim#include <asm/state.h>
8292932Sdim
9292932Sdimvoid flush_cache(unsigned long addr, unsigned long size)
10292932Sdim{
11292932Sdim	/* Clang uses (char *) parameters, GCC (void *) */
12292932Sdim	__builtin___clear_cache((void *)addr, (void *)(addr + size));
13321369Sdim}
14314564Sdim
15292932Sdimvoid invalidate_icache_all(void)
16292932Sdim{
17292932Sdim	struct sandbox_state *state = state_get_current();
18360784Sdim
19360784Sdim	/* Clang uses (char *) parameters, GCC (void *) */
20360784Sdim	__builtin___clear_cache((void *)state->ram_buf,
21360784Sdim				(void *)(state->ram_buf + state->ram_size));
22360784Sdim}
23360784Sdim