[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sys_getpriority()
This seems to be correct to me. Remember 20 - ( -20) = 40
and it says that it returns 40..1 instead of -20..19
40...20...1
-20...0..19
etc
On Sun, 9 Dec 2001, Asok Tiyyagura wrote:
> Hi guys,
>
> I am a newbie. Please correct me if I am wrong. The
> function sys_getpriority() returns max priority of a
> group of processes. But the code below seems to have a
> bug. I believe the statement
>
> niceval = 20 - p->nice;
>
> should have been
>
> niceval = 20 + p->nice;
>
> Thanks in advance,
> Asok
>
> /*
> * Ugh. To avoid negative return values, "getpriority
> ()" will
> * not return the normal nice-value, but a negated
> value that
> * has been offset by 20 (ie it returns 40..1 instead
> of -20..19)
> * to stay compatible.
> */
> asmlinkage long sys_getpriority(int which, int who)
> {
> struct task_struct *p;
> long retval = -ESRCH;
>
> if (which > 2 || which < 0)
> return -EINVAL;
>
> read_lock(&tasklist_lock);
> for_each_task (p) {
> long niceval;
> if (!proc_sel(p, which, who))
> continue;
> niceval = 20 - p->nice;
> if (niceval > retval)
> retval = niceval;
> }
> read_unlock(&tasklist_lock);
>
> return retval;
> }
>
>
> __________________________________________________
> Do You Yahoo!?
> Send your FREE holiday greetings online!
> http://greetings.yahoo.com
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive: http://mail.nl.linux.org/kernelnewbies/
> IRC Channel: irc.openprojects.net / #kernelnewbies
> Web Page: http://www.kernelnewbies.org/
>
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
IRC Channel: irc.openprojects.net / #kernelnewbies
Web Page: http://www.kernelnewbies.org/