#DPATCHLEVEL=0 --- # linux-user/syscall.c | 11 ++++++++--- # 1 file changed, 8 insertions(+), 3 deletions(-) # Index: linux-user/syscall.c =================================================================== --- linux-user/syscall.c.orig 2007-12-03 19:32:56.000000000 +0000 +++ linux-user/syscall.c 2007-12-03 19:33:41.000000000 +0000 @@ -250,6 +250,7 @@ extern int getresuid(uid_t *, uid_t *, u extern int setresgid(gid_t, gid_t, gid_t); extern int getresgid(gid_t *, gid_t *, gid_t *); extern int setgroups(int, gid_t *); +extern int uselib(const char*); #define ERRNO_TABLE_SIZE 1200 @@ -4024,7 +4025,8 @@ abi_long do_syscall(void *cpu_env, int n #endif #ifdef TARGET_NR_uselib case TARGET_NR_uselib: - goto unimplemented; + ret = get_errno(uselib(path((const char*)arg1))); + break; #endif #ifdef TARGET_NR_swapon case TARGET_NR_swapon: @@ -5289,7 +5291,9 @@ abi_long do_syscall(void *cpu_env, int n goto unimplemented; #ifdef TARGET_NR_mincore case TARGET_NR_mincore: - goto unimplemented; + /*page_unprotect_range((void*)arg3, ((size_t)arg2 + TARGET_PAGE_SIZE - 1) / TARGET_PAGE_SIZE);*/ + ret = get_errno(mincore((void*)arg1, (size_t)arg2, (unsigned char*)arg3)); + break; #endif #ifdef TARGET_NR_madvise case TARGET_NR_madvise: @@ -5429,7 +5433,8 @@ abi_long do_syscall(void *cpu_env, int n break; #ifdef TARGET_NR_readahead case TARGET_NR_readahead: - goto unimplemented; + ret = get_errno(readahead((int)arg1, (off64_t)arg2, (size_t)arg3)); + break; #endif #ifdef TARGET_NR_setxattr case TARGET_NR_setxattr: