Commit 3ae43202754711808ea5186e327bfd0533dd88fc
1 parent
5fafdf24
Add some missing checks for host syscalls.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3174 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
7 additions
and
5 deletions
linux-user/syscall.c
@@ -161,15 +161,17 @@ static int gettid(void) { | @@ -161,15 +161,17 @@ static int gettid(void) { | ||
161 | _syscall1(int,sys_uname,struct new_utsname *,buf) | 161 | _syscall1(int,sys_uname,struct new_utsname *,buf) |
162 | _syscall2(int,sys_getcwd1,char *,buf,size_t,size) | 162 | _syscall2(int,sys_getcwd1,char *,buf,size_t,size) |
163 | _syscall3(int, sys_getdents, uint, fd, struct dirent *, dirp, uint, count); | 163 | _syscall3(int, sys_getdents, uint, fd, struct dirent *, dirp, uint, count); |
164 | +#if defined(TARGET_NR_getdents64) && defined(__NR_getdents64) | ||
164 | _syscall3(int, sys_getdents64, uint, fd, struct dirent64 *, dirp, uint, count); | 165 | _syscall3(int, sys_getdents64, uint, fd, struct dirent64 *, dirp, uint, count); |
166 | +#endif | ||
165 | _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, | 167 | _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, |
166 | loff_t *, res, uint, wh); | 168 | loff_t *, res, uint, wh); |
167 | _syscall3(int,sys_rt_sigqueueinfo,int,pid,int,sig,siginfo_t *,uinfo) | 169 | _syscall3(int,sys_rt_sigqueueinfo,int,pid,int,sig,siginfo_t *,uinfo) |
168 | _syscall3(int,sys_syslog,int,type,char*,bufp,int,len) | 170 | _syscall3(int,sys_syslog,int,type,char*,bufp,int,len) |
169 | -#ifdef TARGET_NR_tgkill | 171 | +#if defined(TARGET_NR_tgkill) && defined(__NR_tgkill) |
170 | _syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig) | 172 | _syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig) |
171 | #endif | 173 | #endif |
172 | -#ifdef TARGET_NR_tkill | 174 | +#if defined(TARGET_NR_tkill) && defined(__NR_tkill) |
173 | _syscall2(int,sys_tkill,int,tid,int,sig) | 175 | _syscall2(int,sys_tkill,int,tid,int,sig) |
174 | #endif | 176 | #endif |
175 | #ifdef __NR_exit_group | 177 | #ifdef __NR_exit_group |
@@ -3845,7 +3847,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | @@ -3845,7 +3847,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | ||
3845 | } | 3847 | } |
3846 | #endif | 3848 | #endif |
3847 | break; | 3849 | break; |
3848 | -#ifdef TARGET_NR_getdents64 | 3850 | +#if defined(TARGET_NR_getdents64) && defined(__NR_getdents64) |
3849 | case TARGET_NR_getdents64: | 3851 | case TARGET_NR_getdents64: |
3850 | { | 3852 | { |
3851 | struct dirent64 *dirp; | 3853 | struct dirent64 *dirp; |
@@ -4634,13 +4636,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | @@ -4634,13 +4636,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | ||
4634 | break; | 4636 | break; |
4635 | #endif | 4637 | #endif |
4636 | 4638 | ||
4637 | -#ifdef TARGET_NR_tkill | 4639 | +#if defined(TARGET_NR_tkill) && defined(__NR_tkill) |
4638 | case TARGET_NR_tkill: | 4640 | case TARGET_NR_tkill: |
4639 | ret = get_errno(sys_tkill((int)arg1, (int)arg2)); | 4641 | ret = get_errno(sys_tkill((int)arg1, (int)arg2)); |
4640 | break; | 4642 | break; |
4641 | #endif | 4643 | #endif |
4642 | 4644 | ||
4643 | -#ifdef TARGET_NR_tgkill | 4645 | +#if defined(TARGET_NR_tgkill) && defined(__NR_tgkill) |
4644 | case TARGET_NR_tgkill: | 4646 | case TARGET_NR_tgkill: |
4645 | ret = get_errno(sys_tgkill((int)arg1, (int)arg2, (int)arg3)); | 4647 | ret = get_errno(sys_tgkill((int)arg1, (int)arg2, (int)arg3)); |
4646 | break; | 4648 | break; |