.th K_set_process_status II 4/21/86
.sh NAME
K_set_process_status - set process specific attributes
.sh "MODULA SYNOPSIS"
.nh
.na
 CONST procSeid: seid;
.br
 CONST status: proc_stat_block;
.br
 CONST choice: selector;
.br
 VAR stat: K_err_num;
.br
 . . .
.br
 stat := NK_set_process_status(procSeid, status, choice);
.br
.hy
.ad
.sp
.sh "C SYNOPSIS"
.nh
.na
 seid procSeid;
.br
 proc_stat_block status;
.br
 selector choice;
.br
 int stat;
.br
 . . .
.br
 stat = K_set_process_status (procSeid, &status, choice);
.br
.hy
.ad
.sh DESCRIPTION
The K_set_process_status call permits the process to change those type
dependent parameters that are not controlled by other primitives.
.sp
The K_set_process_status Kernel call supplies an advisory scheduling
priority to the Kernel level scheduler.  The Kernel may elect to adjust
the advisory priority to guarantee equitable service to all processes.
.sp
The notion of real and effective user identification shall be retained
at the Kernel level because these identifiers determine the access
permissions extended to a process.  The effective user and group ID's
are part of the type independent information for the process, because
they determine the discretionary access rights.  The real user and
group ID's are part of this type dependent information and require the
privilege privSetLevel to modify.
.sp
The timer toggle and pseudo-interrupt level control the
pseudo-interrupt mechanism.  If the timer toggle is TRUE, a pseudo-
interrupt shall be generated every clock tick (machine dependent time
unit).  This mechanism may be used for periodic sampling of user mode
program counter values for the construction of execution profiles.  The
pseudo-interrupt level is analogous to the hardware interrupt level.
Pseudo-interrupts shall be transmitted to the process only if the level
of the pseudo-interrupt is above the level of the process.

The selector bit positions within the choice parameter are:

.nf


	 pstat_family    01
	 pstat_owner     02
	 pstat_group     04
	 pstat_aprio    010
	 pstat_pseint   020
	 pstat_ps       040
	 pstat_alarm   0100
	 pstat_tt      0200
	 pstat_clock   0400

.fi

.sh EXCEPTIONS
.lp 22 15
XbPrSd	Bad Process seid. Process does not exist or calling
process cannot determine existence of target process.
.lp 22 15
XnoPriv	Process is trying to change family, owner or group and
does not have the PrivSetLev privilege.
.i0
.sh "SEE ALSO"
K_get_processs_status(II),
K_get_segment_status(II),
K_set_real_id(II),
priv_struct(IIa),
proc_stat_block(IIa),
selector(IIa)
