Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _LINUX_SCHED_PRIO_H
0003 #define _LINUX_SCHED_PRIO_H
0004 
0005 #define MAX_NICE    19
0006 #define MIN_NICE    -20
0007 #define NICE_WIDTH  (MAX_NICE - MIN_NICE + 1)
0008 
0009 /*
0010  * Priority of a process goes from 0..MAX_PRIO-1, valid RT
0011  * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
0012  * tasks are in the range MAX_RT_PRIO..MAX_PRIO-1. Priority
0013  * values are inverted: lower p->prio value means higher priority.
0014  */
0015 
0016 #define MAX_RT_PRIO     100
0017 
0018 #define MAX_PRIO        (MAX_RT_PRIO + NICE_WIDTH)
0019 #define DEFAULT_PRIO        (MAX_RT_PRIO + NICE_WIDTH / 2)
0020 
0021 /*
0022  * Convert user-nice values [ -20 ... 0 ... 19 ]
0023  * to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ],
0024  * and back.
0025  */
0026 #define NICE_TO_PRIO(nice)  ((nice) + DEFAULT_PRIO)
0027 #define PRIO_TO_NICE(prio)  ((prio) - DEFAULT_PRIO)
0028 
0029 /*
0030  * Convert nice value [19,-20] to rlimit style value [1,40].
0031  */
0032 static inline long nice_to_rlimit(long nice)
0033 {
0034     return (MAX_NICE - nice + 1);
0035 }
0036 
0037 /*
0038  * Convert rlimit style value [1,40] to nice value [-20, 19].
0039  */
0040 static inline long rlimit_to_nice(long prio)
0041 {
0042     return (MAX_NICE - prio + 1);
0043 }
0044 
0045 #endif /* _LINUX_SCHED_PRIO_H */