aboutsummaryrefslogtreecommitdiff
path: root/linux-user
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2006-12-08 01:32:58 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2006-12-08 01:32:58 +0000
commit7d600c804d79e21254a20b953d6bd175597d752d (patch)
tree17abadfe6b7a69ca3704a28e925557d44bdc8e1b /linux-user
parent71fb7241c65ef2de8b55e6907e674b8f766b3061 (diff)
Fix fstat for MIPS userland emulation, and add support for a cacheflush
syscall, thanks to Dave Denholm. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2234 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/syscall.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e95212894f..075460bae9 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2933,7 +2933,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
lock_user_struct(target_st, arg2, 0);
target_st->st_dev = tswap16(st.st_dev);
target_st->st_ino = tswapl(st.st_ino);
-#if defined(TARGET_PPC)
+#if defined(TARGET_PPC) || defined(TARGET_MIPS)
target_st->st_mode = tswapl(st.st_mode); /* XXX: check this */
target_st->st_uid = tswap32(st.st_uid);
target_st->st_gid = tswap32(st.st_gid);
@@ -3829,6 +3829,12 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
break;
}
#endif
+#ifdef TARGET_NR_cacheflush
+ case TARGET_NR_cacheflush:
+ /* self-modifying code is handled automatically, so nothing needed */
+ ret = 0;
+ break;
+#endif
#ifdef TARGET_NR_security
case TARGET_NR_security:
goto unimplemented;