Commit c6cda17aca3770e178aff5d851da1da9ebb1f210

Authored by ths
1 parent aa343735

getpriority() shouldn't use libc wrapper, by Thayne Harbaugh.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3376 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 6 additions and 1 deletions
linux-user/syscall.c
@@ -145,6 +145,7 @@ type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \ @@ -145,6 +145,7 @@ type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
145 #define __NR_sys_getcwd1 __NR_getcwd 145 #define __NR_sys_getcwd1 __NR_getcwd
146 #define __NR_sys_getdents __NR_getdents 146 #define __NR_sys_getdents __NR_getdents
147 #define __NR_sys_getdents64 __NR_getdents64 147 #define __NR_sys_getdents64 __NR_getdents64
  148 +#define __NR_sys_getpriority __NR_getpriority
148 #define __NR_sys_linkat __NR_linkat 149 #define __NR_sys_linkat __NR_linkat
149 #define __NR_sys_mkdirat __NR_mkdirat 150 #define __NR_sys_mkdirat __NR_mkdirat
150 #define __NR_sys_mknodat __NR_mknodat 151 #define __NR_sys_mknodat __NR_mknodat
@@ -187,6 +188,7 @@ _syscall3(int, sys_getdents, uint, fd, struct dirent *, dirp, uint, count); @@ -187,6 +188,7 @@ _syscall3(int, sys_getdents, uint, fd, struct dirent *, dirp, uint, count);
187 #if defined(TARGET_NR_getdents64) && defined(__NR_getdents64) 188 #if defined(TARGET_NR_getdents64) && defined(__NR_getdents64)
188 _syscall3(int, sys_getdents64, uint, fd, struct dirent64 *, dirp, uint, count); 189 _syscall3(int, sys_getdents64, uint, fd, struct dirent64 *, dirp, uint, count);
189 #endif 190 #endif
  191 +_syscall2(int, sys_getpriority, int, which, int, who);
190 _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, 192 _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo,
191 loff_t *, res, uint, wh); 193 loff_t *, res, uint, wh);
192 #if defined(TARGET_NR_linkat) && defined(__NR_linkat) 194 #if defined(TARGET_NR_linkat) && defined(__NR_linkat)
@@ -3607,7 +3609,10 @@ target_long do_syscall(void *cpu_env, int num, target_long arg1, @@ -3607,7 +3609,10 @@ target_long do_syscall(void *cpu_env, int num, target_long arg1,
3607 break; 3609 break;
3608 #endif 3610 #endif
3609 case TARGET_NR_getpriority: 3611 case TARGET_NR_getpriority:
3610 - ret = get_errno(getpriority(arg1, arg2)); 3612 + /* libc does special remapping of the return value of
  3613 + * sys_getpriority() so it's just easiest to call
  3614 + * sys_getpriority() directly rather than through libc. */
  3615 + ret = sys_getpriority(arg1, arg2);
3611 break; 3616 break;
3612 case TARGET_NR_setpriority: 3617 case TARGET_NR_setpriority:
3613 ret = get_errno(setpriority(arg1, arg2, arg3)); 3618 ret = get_errno(setpriority(arg1, arg2, arg3));