.\" Copyright (C) Tom Bjorkholm & Markus Kuhn, 1996
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" 1996-04-01 Tom Bjorkholm <tomb@mydata.se>
.\"            First version written
.\" 1996-04-10 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.\"            revision
.\"
.TH SCHED_GET_PRIORITY_MAX 2 2017-09-15 "Linux" "Linux Programmer's Manual"
.SH NAME
sched_get_priority_max, sched_get_priority_min  \- get static priority range
.SH SYNOPSIS
.B #include <sched.h>
.PP
.BI "int sched_get_priority_max(int " policy );
.PP
.BI "int sched_get_priority_min(int " policy );
.SH DESCRIPTION
.BR sched_get_priority_max ()
returns the maximum priority value that can be used with the
scheduling algorithm identified by
.IR policy .
.BR sched_get_priority_min ()
returns the minimum priority value that can be used with the
scheduling algorithm identified by
.IR policy .
Supported
.I policy
values are
.BR SCHED_FIFO ,
.BR SCHED_RR ,
.BR SCHED_OTHER ,
.BR SCHED_BATCH ,
.BR SCHED_IDLE ,
and
.BR SCHED_DEADLINE .
Further details about these policies can be found in
.BR sched (7).
.PP
Processes with numerically higher priority values are scheduled before
processes with numerically lower priority values.
Thus, the value
returned by
.BR sched_get_priority_max ()
will be greater than the
value returned by
.BR sched_get_priority_min ().
.PP
Linux allows the static priority range 1 to 99 for the
.B SCHED_FIFO
and
.B SCHED_RR
policies, and the priority 0 for the remaining policies.
Scheduling priority ranges for the various policies
are not alterable.
.PP
The range of scheduling priorities may vary on other POSIX systems,
thus it is a good idea for portable applications to use a virtual
priority range and map it to the interval given by
.BR sched_get_priority_max ()
and
.BR sched_get_priority_min
POSIX.1 requires
.\" POSIX.1-2001, POSIX.1-2008 (XBD 2.8.4)
a spread of at least 32 between the maximum and the minimum values for
.B SCHED_FIFO
and
.BR SCHED_RR .
.PP
POSIX systems on which
.BR sched_get_priority_max ()
and
.BR sched_get_priority_min ()
are available define
.B _POSIX_PRIORITY_SCHEDULING
in
.IR <unistd.h> .
.SH RETURN VALUE
On success,
.BR sched_get_priority_max ()
and
.BR sched_get_priority_min ()
return the maximum/minimum priority value for the named scheduling
policy.
On error, \-1 is returned, and
.I errno
is set appropriately.
.SH ERRORS
.TP
.B EINVAL
The argument
.I policy
does not identify a defined scheduling policy.
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
.SH SEE ALSO
.ad l
.nh
.BR sched_getaffinity (2),
.BR sched_getparam (2),
.BR sched_getscheduler (2),
.BR sched_setaffinity (2),
.BR sched_setparam (2),
.BR sched_setscheduler (2),
.BR sched (7)
.SH COLOPHON
This page is part of release 4.15 of the Linux
.I man-pages
project.
A description of the project,
information about reporting bugs,
and the latest version of this page,
can be found at
\%https://www.kernel.org/doc/man\-pages/.
