bsd-user: Implement getpriority(2) and setpriority(2).
Signed-off-by: Stacey Son <sson@FreeBSD.org> Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com> Reviewed-by: Warner Losh <imp@bsdimp.com> Message-Id: <20230925182425.3163-19-kariem.taha2.7@gmail.com>
This commit is contained in:
parent
615ad41c61
commit
ff26637260
@ -390,4 +390,28 @@ static inline abi_long do_bsd_ptrace(abi_long arg1, abi_long arg2,
|
||||
return -TARGET_ENOSYS;
|
||||
}
|
||||
|
||||
/* getpriority(2) */
|
||||
static inline abi_long do_bsd_getpriority(abi_long which, abi_long who)
|
||||
{
|
||||
abi_long ret;
|
||||
/*
|
||||
* Note that negative values are valid for getpriority, so we must
|
||||
* differentiate based on errno settings.
|
||||
*/
|
||||
errno = 0;
|
||||
ret = getpriority(which, who);
|
||||
if (ret == -1 && errno != 0) {
|
||||
return -host_to_target_errno(errno);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* setpriority(2) */
|
||||
static inline abi_long do_bsd_setpriority(abi_long which, abi_long who,
|
||||
abi_long prio)
|
||||
{
|
||||
return get_errno(setpriority(which, who, prio));
|
||||
}
|
||||
|
||||
#endif /* !BSD_PROC_H_ */
|
||||
|
@ -359,6 +359,14 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
ret = do_bsd_ptrace(arg1, arg2, arg3, arg4);
|
||||
break;
|
||||
|
||||
case TARGET_FREEBSD_NR_getpriority: /* getpriority(2) */
|
||||
ret = do_bsd_getpriority(arg1, arg2);
|
||||
break;
|
||||
|
||||
case TARGET_FREEBSD_NR_setpriority: /* setpriority(2) */
|
||||
ret = do_bsd_setpriority(arg1, arg2, arg3);
|
||||
break;
|
||||
|
||||
|
||||
/*
|
||||
* File system calls.
|
||||
|
Loading…
Reference in New Issue
Block a user