Browse Source

cacheflush.c: compile only if __NR_cacheflush is available

The header had to be removed under the guard, else asm/cachectl.h might
not be available at all.
While there, disable __cachectl prototype.
Use untyped strong_alias for cacheflush because char * != void *.

Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Peter S. Mazinger 14 years ago
parent
commit
8f6fc2576c

+ 4 - 3
libc/sysdeps/linux/bfin/cacheflush.c

@@ -6,9 +6,10 @@
  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  */
 
-#include <unistd.h>
-#include <errno.h>
 #include <sys/syscall.h>
-#include <sys/cachectl.h>
+
+#ifdef __NR_cacheflush
+# include <sys/cachectl.h>
 
 _syscall3 (int, cacheflush, void *, start, const int, nbytes, const int, flags)
+#endif

+ 3 - 3
libc/sysdeps/linux/mips/cacheflush.c

@@ -16,15 +16,15 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <errno.h>
-#include <unistd.h>
 #include <sys/syscall.h>
 
 #ifdef __NR_cacheflush
+# include <sys/cachectl.h>
 _syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
-strong_alias(cacheflush, _flush_cache)
+strong_alias_untyped(cacheflush, _flush_cache)
 #endif
 
 #ifdef __NR_cachectl
+# include <sys/cachectl.h>
 _syscall3(int, cachectl, void *, addr, const int, nbytes, const int, op)
 #endif

+ 2 - 0
libc/sysdeps/linux/mips/sys/cachectl.h

@@ -31,7 +31,9 @@ __BEGIN_DECLS
 #ifdef __USE_MISC
 extern int cachectl (void *addr, __const int nbytes, __const int op) __THROW;
 #endif
+#if 0
 extern int __cachectl (void *addr, __const int nbytes, __const int op) __THROW;
+#endif
 #ifdef __USE_MISC
 extern int cacheflush (void *addr, __const int nbytes, __const int op) __THROW;
 #endif