#DPATCHLEVEL=0 --- # linux-user/syscall.c | 11 ++++++++--- # 1 file changed, 8 insertions(+), 3 deletions(-) # Index: linux-user/syscall.c =================================================================== --- linux-user/syscall.c.orig 2008-04-24 20:15:46.000000000 +0100 +++ linux-user/syscall.c 2008-04-24 20:15:59.000000000 +0100 @@ -250,6 +250,7 @@ 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 @@ -4041,7 +4042,8 @@ #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: @@ -5322,7 +5324,9 @@ 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: @@ -5462,7 +5466,8 @@ 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: