Merged in a bunch of patches that I got as reaction to the 3.99 release.
See the ChangeLog for details
diff --git a/system.c b/system.c
index 16c1648..506be61 100644
--- a/system.c
+++ b/system.c
@@ -45,8 +45,9 @@
#include <netinet/in.h>
#include <arpa/inet.h>
-#ifdef LINUX
+#ifdef __NR_personality
/* Workaround for kernel namespace pollution. */
+#define _LINUX_PTRACE_H
#define sys_personality kernel_sys_personality
#include <linux/personality.h>
#undef sys_personality
@@ -56,6 +57,10 @@
#include <linux/capability.h>
#endif
+#ifdef __NR_cacheflush
+#include <asm/cachectl.h>
+#endif
+
static struct xlat mount_flags[] = {
{ MS_RDONLY, "MS_RDONLY" },
{ MS_NOSUID, "MS_NOSUID" },
@@ -127,6 +132,52 @@
return 0;
}
+#ifdef M68K
+static struct xlat cacheflush_scope[] = {
+#ifdef FLUSH_SCOPE_LINE
+ { FLUSH_SCOPE_LINE, "FLUSH_SCOPE_LINE" },
+#endif
+#ifdef FLUSH_SCOPE_PAGE
+ { FLUSH_SCOPE_PAGE, "FLUSH_SCOPE_PAGE" },
+#endif
+#ifdef FLUSH_SCOPE_ALL
+ { FLUSH_SCOPE_ALL, "FLUSH_SCOPE_ALL" },
+#endif
+ { 0, NULL },
+};
+
+static struct xlat cacheflush_flags[] = {
+#ifdef FLUSH_CACHE_BOTH
+ { FLUSH_CACHE_BOTH, "FLUSH_CACHE_BOTH" },
+#endif
+#ifdef FLUSH_CACHE_DATA
+ { FLUSH_CACHE_DATA, "FLUSH_CACHE_DATA" },
+#endif
+#ifdef FLUSH_CACHE_INSN
+ { FLUSH_CACHE_INSN, "FLUSH_CACHE_INSN" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_cacheflush(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /* addr */
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ /* scope */
+ printxval(cacheflush_scope, tcp->u_arg[1], "FLUSH_SCOPE_???");
+ tprintf(", ");
+ /* flags */
+ printflags(cacheflush_flags, tcp->u_arg[2]);
+ /* len */
+ tprintf(", %lu", tcp->u_arg[3]);
+ }
+ return 0;
+}
+#endif /* M68K */
+
#endif /* LINUX */
#ifdef SUNOS4