priocntlset(2)
NAME
priocntlset - generalized process scheduler control
SYNOPSIS
#include <sys/types.h>
#include <sys/procset.h>
#include <sys/priocntl.h>
#include <sys/rtpriocntl.h>
#include <sys/tspriocntl.h>
long priocntlset(procset_t *psp, int cmd, /* arg */ ...);
DESCRIPTION
The priocntlset() function changes the scheduling properties
of running processes. priocntlset() has the same functions
as the priocntl() function, but a more general way of speci-
fying the set of processes whose scheduling properties are
to be changed.
cmd specifies the function to be performed. arg is a pointer
to a structure whose type depends on cmd. See priocntl(2)
for the valid values of cmd and the corresponding arg struc-
tures.
psp is a pointer to a procset structure, which priocntlset()
uses to specify the set of processes whose scheduling pro-
perties are to be changed. The procset structure contains
the following members:
idop_t p_op; /* operator connecting left/right sets */
idtype_t p_lidtype; /* left set ID type */
id_t p_lid; /* left set ID */
idtype_t p_ridtype; /* right set ID type */
id_t p_rid; /* right set ID */
The p_lidtype and p_lid members specify the ID type and ID
of one ("left") set of processes; the p_ridtype and p_rid
members specify the ID type and ID of a second ("right") set
of processes. ID types and IDs are specified just as for the
priocntl() function. The p_op member specifies the operation
to be performed on the two sets of processes to get the set
of processes the function is to apply to. The valid values
for p_op and the processes they specify are:
POP_DIFF
Set difference: processes in left set and not in right
set.
POP_AND
Set intersection: processes in both left and right
sets.
POP_OR
Set union: processes in either left or right sets or
both.
POP_XOR
Set exclusive-or: processes in left or right set but
not in both.
The following macro, which is defined in <procset.h>, offers
a convenient way to initialize a procset structure:
#define setprocset(psp, op, ltype, lid, rtype, rid) \
(psp)->p_op = (op), \
(psp)->p_lidtype = (ltype), \
(psp)->p_lid = (lid), \
(psp)->p_ridtype = (rtype), \
(psp)->p_rid = (rid),
RETURN VALUES
Unless otherwise noted above, priocntlset() returns 0 on
success. Otherwise, it returns -1 and sets errno to indicate
the error.
ERRORS
The priocntlset() function will fail if:
EAGAIN
An attempt to change the class of a process failed
because of insufficient resources other than memory
(for example, class-specific kernel data structures).
EFAULT
One of the arguments points to an illegal address.
EINVAL
The argument cmd was invalid, an invalid or unconfig-
ured class was specified, or one of the parameters
specified was invalid.
ENOMEM
An attempt to change the class of a process failed
because of insufficient memory.
EPERM The effective user of the calling process is not
super-user.
ERANGE
The requested time quantum is out of range.
ESRCH None of the specified processes exist.
SEE ALSO
priocntl(1), priocntl(2)
Man(1) output converted with
man2html