1 1.1 gmcgarry #include <stdio.h> 2 1.1 gmcgarry #include <signal.h> 3 1.1 gmcgarry #include <sys/ras.h> 4 1.1 gmcgarry #include <sys/time.h> 5 1.1 gmcgarry 6 1.1 gmcgarry #define COUNT 10 7 1.1 gmcgarry 8 1.1 gmcgarry __volatile int handled = 0; 9 1.1 gmcgarry __volatile int count = 0; 10 1.1 gmcgarry struct itimerval itv; 11 1.1 gmcgarry 12 1.1 gmcgarry void handler(int); 13 1.1 gmcgarry 14 1.1 gmcgarry void 15 1.1 gmcgarry handler(int sig) 16 1.1 gmcgarry { 17 1.1 gmcgarry 18 1.1 gmcgarry handled++; 19 1.1 gmcgarry } 20 1.1 gmcgarry 21 1.1 gmcgarry int 22 1.1 gmcgarry main(void) 23 1.1 gmcgarry { 24 1.1 gmcgarry 25 1.1 gmcgarry signal(SIGVTALRM, handler); 26 1.1 gmcgarry 27 1.1 gmcgarry itv.it_interval.tv_sec = 0; 28 1.1 gmcgarry itv.it_interval.tv_usec = 0; 29 1.1 gmcgarry itv.it_value.tv_sec = 10; 30 1.1 gmcgarry itv.it_value.tv_usec = 0; 31 1.1 gmcgarry setitimer(ITIMER_VIRTUAL, &itv, NULL); 32 1.1 gmcgarry 33 1.1 gmcgarry if (rasctl((caddr_t)&&start, (caddr_t)&&end - (caddr_t)&&start, 34 1.1 gmcgarry RAS_INSTALL) < 0) 35 1.1 gmcgarry return (1); 36 1.1 gmcgarry 37 1.1 gmcgarry start: 38 1.1 gmcgarry count++; 39 1.1 gmcgarry if (count > COUNT) 40 1.1 gmcgarry goto end; 41 1.1 gmcgarry 42 1.1 gmcgarry while (!handled) { 43 1.1 gmcgarry continue; 44 1.1 gmcgarry } 45 1.1 gmcgarry end: 46 1.1 gmcgarry 47 1.1 gmcgarry return (handled != 0); 48 1.1 gmcgarry } 49