#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 */ ...);
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. 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 */
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 ID s are specified just as for the priocntl() function. p_op 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:
processes in left or right set but not in both
- 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:
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),