#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) { int i; char c = 'a'; char buf[2048]; /* * for(i = 0; i < 2048; i++) { * buf[i] = c; * * c++; * if(c > 'z') * c = 'a'; * } * ctty(1); * write(buf, 2048); * while(1); */ if(getpid() == 1) { ctty(1); pid1(); } pid2(); }