.th K_signal II 4/21/86
.sh NAME
K_signal - send high-priority inter-process communication (IPC) message
.sh "MODULA SYNOPSIS"
.nh
.na
 CONST procSeid: seid;
.br
 CONST sigMsg: msg_struct;
.br
 VAR stat: K_err_num;
.br
 . . .
.br
 stat := NK_signal(procSeid, sigMsg);
.br
.hy
.ad
.sp
.sh "C SYNOPSIS"
.nh
.na
 seid procSeid;
.br
 msg_struct sigMsg;
.br
 int stat;
.br
 . . .
.br
 stat = K_signal (procSeid, &sigMsg);
.br
.hy
.ad
.sh DESCRIPTION
The K_signal primitive provides a means for privileged processes to
transmit a high priority pseudo-interrupt to a process.  K_signal
differs from the K_post IPC mechanism in several ways.  First, K_signal
always generates a pseudo-interrupt.  The pseudo-interrupt level of the
K_signal pseudo-interrupt is above that of normal IPC.  Second, the
K_signal pseudo-interrupt will abort long running Kernel calls (i.e.
terminal I/O) which the K_post mechanism does not.  The
intended use of K_signal is to provide a mechanism for a privileged
process to "get through" to another process, typically to ask it to
terminate.  The calling process must have the privilege privSignal.
.sh EXCEPTIONS
.lp 22 15
XbPrSd	Destination process does not exist or process cannot
determine existence due to access checks.
.lp 22 15
XnoPriv	Process does not have PrivSignal privilege.
.lp 22 15
XunInt	Destination process is uninterruptable.
.i0
.sh "SEE ALSO"
K_post(II),
K_receive(II),
K_set_pil(II),
ipc_block(IIa)
