X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=rpikern;a=blobdiff_plain;f=src%2Fsysctl.h;fp=src%2Fsysctl.h;h=e5b75d5e9aadae1d258e2b4141c51c7d56a77de7;hp=8d9634ae05ac30c51b55fbbfd5558ece07400678;hb=38a008b8d1a3a20c401397b4e132fb578e5f0c10;hpb=d80ebb8add60dd01b37d21c21a1a9d971f0f9dce diff --git a/src/sysctl.h b/src/sysctl.h index 8d9634a..e5b75d5 100644 --- a/src/sysctl.h +++ b/src/sysctl.h @@ -14,5 +14,16 @@ : "memory"); \ } while(0) +#define sysctl_icache_inval(addr, len) \ + do { \ + register uint32_t a asm("r0") = addr; \ + asm volatile( \ + "\n0:\tmcr p15, 0, %0, c7, c5, 1" \ + "\n\tadd %0, #64" \ + "\n\tcmp %0, %1" \ + "\n\tblo 0b" \ + :: "r"(a), "r"(addr + len) \ + : "memory"); \ + } while(0) #endif /* SYSCTL_H_ */