Commit 2054ac9baf27ecec52acde96881c9f0278ce04da
1 parent
34c9dd8e
linux-user: Add readahead syscall
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5479 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
14 additions
and
1 deletions
linux-user/syscall.c
... | ... | @@ -5761,7 +5761,20 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, |
5761 | 5761 | break; |
5762 | 5762 | #ifdef TARGET_NR_readahead |
5763 | 5763 | case TARGET_NR_readahead: |
5764 | - goto unimplemented; | |
5764 | +#if TARGET_ABI_BITS == 32 | |
5765 | +#ifdef TARGET_ARM | |
5766 | + if (((CPUARMState *)cpu_env)->eabi) | |
5767 | + { | |
5768 | + arg2 = arg3; | |
5769 | + arg3 = arg4; | |
5770 | + arg4 = arg5; | |
5771 | + } | |
5772 | +#endif | |
5773 | + ret = get_errno(readahead(arg1, ((off64_t)arg3 << 32) | arg2, arg4)); | |
5774 | +#else | |
5775 | + ret = get_errno(readahead(arg1, arg2, arg3)); | |
5776 | +#endif | |
5777 | + break; | |
5765 | 5778 | #endif |
5766 | 5779 | #ifdef TARGET_NR_setxattr |
5767 | 5780 | case TARGET_NR_setxattr: | ... | ... |