ref: f6d48501c4c475c5c9cad077ae6b206e72e0c65d
dir: /kern/postnote.c/
#include <u.h>
#include <libc.h>
#include <signal.h>
extern int _p9strsig(char*);
int
postnote(int who, int pid, char *msg)
{
int sig;
sig = _p9strsig(msg);
if(sig == 0){
werrstr("unknown note");
return -1;
}
if(pid <= 0){
werrstr("bad pid in postnote");
return -1;
}
switch(who){
default:
werrstr("bad who in postnote");
return -1;
case PNPROC:
return kill(pid, sig);
case PNGROUP:
if((pid = getpgid(pid)) < 0)
return -1;
return killpg(pid, sig);
}
}