38 lines
514 B
C
38 lines
514 B
C
#include <u.h>
|
|
#define NOPLAN9DEFINES
|
|
#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);
|
|
}
|
|
}
|