RTPRIO(2) MidnightBSD System Calls Manual RTPRIO(2)

NAME

rtprio — examine or modify a process realtime or idle priority

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 realtime or idle priority of a process.

The function argument specifies the operation to be performed. 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 realtime 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

nice(1), ps(1), rtprio(1), setpriority(2), nice(3), renice(8)

AUTHORS

The original author was Henrik Vestergaard Draboel 〈hvd@terry.ping.dk〉. This implementation in FreeBSD was substantially rewritten by David Greenman.

MidnightBSD 0.3 July 23, 1994 MidnightBSD 0.3