diff options
Diffstat (limited to 'src/lib9/postnote.c')
-rw-r--r-- | src/lib9/postnote.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/lib9/postnote.c b/src/lib9/postnote.c new file mode 100644 index 00000000..9124bd5c --- /dev/null +++ b/src/lib9/postnote.c @@ -0,0 +1,34 @@ +#include <signal.h> + +#include <u.h> +#define _NO9DEFINES_ +#include <libc.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; + } + + 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); + } +} + + |