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 | 161 | _syscall1(int,sys_uname,struct new_utsname *,buf) |
| 162 | 162 | _syscall2(int,sys_getcwd1,char *,buf,size_t,size) |
| 163 | 163 | _syscall3(int, sys_getdents, uint, fd, struct dirent *, dirp, uint, count); |
| 164 | +#if defined(TARGET_NR_getdents64) && defined(__NR_getdents64) | |
| 164 | 165 | _syscall3(int, sys_getdents64, uint, fd, struct dirent64 *, dirp, uint, count); |
| 166 | +#endif | |
| 165 | 167 | _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, |
| 166 | 168 | loff_t *, res, uint, wh); |
| 167 | 169 | _syscall3(int,sys_rt_sigqueueinfo,int,pid,int,sig,siginfo_t *,uinfo) |
| 168 | 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 | 172 | _syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig) |
| 171 | 173 | #endif |
| 172 | -#ifdef TARGET_NR_tkill | |
| 174 | +#if defined(TARGET_NR_tkill) && defined(__NR_tkill) | |
| 173 | 175 | _syscall2(int,sys_tkill,int,tid,int,sig) |
| 174 | 176 | #endif |
| 175 | 177 | #ifdef __NR_exit_group |
| ... | ... | @@ -3845,7 +3847,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, |
| 3845 | 3847 | } |
| 3846 | 3848 | #endif |
| 3847 | 3849 | break; |
| 3848 | -#ifdef TARGET_NR_getdents64 | |
| 3850 | +#if defined(TARGET_NR_getdents64) && defined(__NR_getdents64) | |
| 3849 | 3851 | case TARGET_NR_getdents64: |
| 3850 | 3852 | { |
| 3851 | 3853 | struct dirent64 *dirp; |
| ... | ... | @@ -4634,13 +4636,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, |
| 4634 | 4636 | break; |
| 4635 | 4637 | #endif |
| 4636 | 4638 | |
| 4637 | -#ifdef TARGET_NR_tkill | |
| 4639 | +#if defined(TARGET_NR_tkill) && defined(__NR_tkill) | |
| 4638 | 4640 | case TARGET_NR_tkill: |
| 4639 | 4641 | ret = get_errno(sys_tkill((int)arg1, (int)arg2)); |
| 4640 | 4642 | break; |
| 4641 | 4643 | #endif |
| 4642 | 4644 | |
| 4643 | -#ifdef TARGET_NR_tgkill | |
| 4645 | +#if defined(TARGET_NR_tgkill) && defined(__NR_tgkill) | |
| 4644 | 4646 | case TARGET_NR_tgkill: |
| 4645 | 4647 | ret = get_errno(sys_tgkill((int)arg1, (int)arg2, (int)arg3)); |
| 4646 | 4648 | break; | ... | ... |