rtprio(2)
NAME
- rtprio - examine or modify a process realtime or idle prior
- ity
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h> #include <sys/rtprio.h> int rtprio(int function, pid_t pid, struct rtprio *rtp);
DESCRIPTION
- The rtprio() system call is used to lookup or change the re
- altime or idle
priority of a process. - The function argument specifies the operation to be per
- formed.
RTP_LOOKUP to lookup the current priority, and RTP_SET to - set the priority. The pid argument specifies the process to be used, 0
- for the current process.
- The *rtp argument is a pointer to a struct rtprio which is
- used to specify the priority and priority type. This structure has the
- following
form: - struct rtprio {
- u_short type;
u_short prio; - };
- The value of the type field may be RTP_PRIO_REALTIME for re
- altime priorities, RTP_PRIO_NORMAL for normal priorities, and
- RTP_PRIO_IDLE for idle
priorities. The priority specified by the prio field ranges - between 0
and RTP_PRIO_MAX (usually 31). 0 is the highest possible - priority.
- Realtime and idle priority is inherited through fork() and
- exec().
- A realtime process can only be preempted by a process of
- equal or higher
priority, or by an interrupt; idle priority processes will - run only when
no other real/normal priority process is runnable. Higher - real/idle priority processes preempt lower real/idle priority processes.
- Processes of
equal real/idle priority are run round-robin.
RETURN VALUES
- The rtprio() function returns the value 0 if successful;
- otherwise the
value -1 is returned and the global variable errno is set to - indicate the
error.
ERRORS
The rtprio() system call will fail if
[EINVAL] The specified prio was out of range.
- [EPERM] The calling process is not allowed to set
- the realtime
- priority. Only root is allowed to change
- the realtime
priority of any process, and non-root may - only change
the idle priority of the current process. - [ESRCH] The specified process was not found.
SEE ALSO
AUTHORS
- The original author was Henrik Vestergaard Draboel <hvd@ter
- ry.ping.dk>.
This implementation in FreeBSD was substantially rewritten - by David
Greenman. - BSD July 23, 1994