kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

icache_riscv.c (420B)


      1 /* riscv32 / riscv64 icache flush. Emit fence.i first so the current hart
      2  * sees freshly written bytes immediately, then __builtin___clear_cache
      3  * lowers to __riscv_flush_icache for cross-hart visibility (Linux). */
      4 
      5 #include <stddef.h>
      6 
      7 #include "env_internal.h"
      8 
      9 void env_flush_icache(void* addr, size_t n) {
     10   __asm__ __volatile__("fence.i" ::: "memory");
     11   __builtin___clear_cache((char*)addr, (char*)addr + n);
     12 }