plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

postnote.c (514B)


      1 #include <u.h>
      2 #define NOPLAN9DEFINES
      3 #include <libc.h>
      4 
      5 #include <signal.h>
      6 
      7 
      8 extern int _p9strsig(char*);
      9 
     10 int
     11 postnote(int who, int pid, char *msg)
     12 {
     13 	int sig;
     14 
     15 	sig = _p9strsig(msg);
     16 	if(sig == 0){
     17 		werrstr("unknown note");
     18 		return -1;
     19 	}
     20 
     21 	if(pid <= 0){
     22 		werrstr("bad pid in postnote");
     23 		return -1;
     24 	}
     25 
     26 	switch(who){
     27 	default:
     28 		werrstr("bad who in postnote");
     29 		return -1;
     30 	case PNPROC:
     31 		return kill(pid, sig);
     32 	case PNGROUP:
     33 		if((pid = getpgid(pid)) < 0)
     34 			return -1;
     35 		return killpg(pid, sig);
     36 	}
     37 }