#include #include #include #include #include #include void sighandler(int sig) { printf("Signal received!\n"); } void pid1(void) { ssize_t in; char buf[2] = { 0, }; printf("We did it ma!\n"); signal(1, &sighandler); while(1) { in = read(buf, 1); if(in < 1) { if(in == -EINTR) { printf("Read call interrupted!\n"); /* kill(getpid(), SIGKILL); */ } else { printf("Error reading from serial port!\n"); kill(getpid(), SIGKILL); } } if(in == 0) { printf("EOF detected!\n"); panic(); } if(in > 0) puts(buf); } } void pid2(void) { int x = 0; printf("We did it ma!\n"); while(1) { sleep(1); if(time() == 2) kill(1, 1); printf("0x%04x:0x%08x: 0x%08x, 0x%08x\n", getpid(), (uint32_t) getpdir(), time(), x++); } } void main(void) { if(getpid() == 1) { ctty(1); pid1(); } pid2(); }