diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-11-04 17:06:31 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-11-04 17:06:31 -0500 |
commit | fc5f16d18222d197ebf182e50048aa384d84269d (patch) | |
tree | d66648871b1562c1eb91f388ad135a469c124511 | |
parent | 2f2f115b58269468304d2f26d029eb470fb44b4a (diff) | |
download | musl-fc5f16d18222d197ebf182e50048aa384d84269d.tar.gz |
mips cache flush/ctl syscall support and header
-rw-r--r-- | include/sys/cachectl.h | 22 | ||||
-rw-r--r-- | src/linux/cache.c | 18 |
2 files changed, 40 insertions, 0 deletions
diff --git a/include/sys/cachectl.h b/include/sys/cachectl.h new file mode 100644 index 00000000..f3b896a8 --- /dev/null +++ b/include/sys/cachectl.h @@ -0,0 +1,22 @@ +#ifndef _SYS_CACHECTL_H +#define _SYS_CACHECTL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define ICACHE (1<<0) +#define DCACHE (1<<1) +#define BCACHE (ICACHE|DCACHE) +#define CACHEABLE 0 +#define UNCACHEABLE 1 + +int cachectl(void *, int, int); +int cacheflush(void *, int, int); +int _flush_cache(void *, int, int); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/linux/cache.c b/src/linux/cache.c new file mode 100644 index 00000000..3f0abc7c --- /dev/null +++ b/src/linux/cache.c @@ -0,0 +1,18 @@ +#include "syscall.h" +#include "libc.h" + +#ifdef SYS_cacheflush +int _flush_cache(void *addr, int len, int op) +{ + return syscall(SYS_cacheflush, addr, len, op); +} +weak_alias(_flush_cache, cacheflush); +#endif + +#ifdef SYS_cachectl +int __cachectl(void *addr, int len, int op) +{ + return syscall(SYS_cachectl, addr, len, op); +} +weak_alias(__cachectl, cachectl); +#endif |