priocntlset(2) — SYSTEM CALLS
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
priocntlset changes the scheduling properties of running processes. priocntlset has the same functions as the priocntl system call, but a more general way of specifying 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 structures.
psp is a pointer to a procset structure, which priocntlset uses to specify the set of processes whose scheduling properties are to be changed.
typedef struct procset {
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 ∗/
} procset_t;
p_lidtype and p_lid specify the ID type and ID of one (“left”) set of processes; p_ridtype and p_rid specify the ID type and ID of a second (“right”) set of processes. ID types and IDs are specified just as for the priocntl system call. p_op specifies the operation to be performed on the two sets of processes to get the set of processes the system call 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:
#definesetprocset(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),
DIAGNOSTICS
priocntlset has the same return values and errors as priocntl.