Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RTPRIO(2)		  FreeBSD System Calls Manual		     RTPRIO(2)

NAME
     rtprio, rtprio_thread -- examine or modify	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);

     int
     rtprio_thread(int function, lwpid_t lwpid,	struct rtprio *rtp);

DESCRIPTION
     The rtprio() system call is used to lookup	or change the realtime or idle
     priority of a process, or the calling thread.  The	rtprio_thread()	system
     call is used to lookup or change the realtime or idle priority of a
     thread.

     The function argument specifies the operation to be performed.
     RTP_LOOKUP	to lookup the current priority,	and RTP_SET to set the prior-
     ity.

     For the rtprio() system call, the pid argument specifies the process to
     operate on, 0 for the calling thread.  When pid is	non-zero, the system
     call reports the highest priority in the process, or sets all threads'
     priority in the process, depending	on value of the	function argument.

     For the rtprio_thread() system call, the lwpid specifies the thread to
     operate on, 0 for the calling thread.

     The *rtp argument is a pointer to a struct	rtprio which is	used to	spec-
     ify 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 priori-
     ties, 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	thread can only	be preempted by	a thread of equal or higher
     priority, or by an	interrupt; idle	priority threads will run only when no
     other real/normal priority	thread is runnable.  Higher real/idle priority
     threads preempt lower real/idle priority threads.	Threads	of equal
     real/idle priority	are run	round-robin.

RETURN VALUES
     The rtprio() and rtprio_thread() functions	return the value 0 if success-
     ful; otherwise the	value -1 is returned and the global variable errno is
     set to indicate the error.

ERRORS
     The rtprio() and rtprio_thread() system calls will	fail if:

     [EFAULT]		The rtp	pointer	passed to rtprio() or rtprio_thread()
			was invalid.

     [EINVAL]		The specified prio was out of range.

     [EPERM]		The calling thread is not allowed to set the realtime
			priority.  Only	root is	allowed	to change the realtime
			priority of any	thread,	and non-root may only change
			the idle priority of threads the user owns, when the
			sysctl(8) variable security.bsd.unprivileged_idprio is
			set to non-zero.

     [ESRCH]		The specified process or thread	was not	found or visi-
			ble.

SEE ALSO
     nice(1), ps(1), rtprio(1),	setpriority(2),	nice(3), renice(8),
     p_cansee(9)

AUTHORS
     The original author was Henrik Vestergaard	Draboel	<hvd@terry.ping.dk>.
     This implementation in FreeBSD was	substantially rewritten	by David
     Greenman.	The rtprio_thread() system call	was implemented	by David Xu.

FreeBSD	10.0		       December	27, 2011		  FreeBSD 10.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=rtprio_thread&sektion=2&manpath=FreeBSD+10.0-RELEASE>

home | help