RS can monitor them.
{
/* Set special disk parameters then call the generic main loop. */
init_params();
+ signal(SIGTERM, SIG_IGN);
driver_task(&w_dtab);
return(OK);
}
} else if (m.m_type == HARD_INT) {
sys_inb(w_wn->base_cmd + REG_STATUS, &w_wn->w_status);
ack_irqs(m.NOTIFY_ARG);
+ } else if (m.m_type == DEV_PING) {
+ notify(m.m_source);
} else {
printf("AT_WINI got unexpected message %d from %d\n",
m.m_type, m.m_source);
reply(TASK_REPLY, m.m_source, m.PROC_NR, OK);
break;
+ case DEV_PING:
+ notify(m.m_source);
+ break;
case DEV_IOCTL:
/* Probably best to SUSPEND the caller, CMOS I/O has nasty timeouts.
receive(ANY, &mess);
if (mess.m_type == SYN_ALARM) {
f_expire_tmrs(NULL, NULL);
+ } else if(mess.m_type == DEV_PING) {
+ notify(mess.m_source);
} else {
f_busy = BSY_IDLE;
}
receive(ANY, &mess);
if (mess.m_type == SYN_ALARM) {
f_expire_tmrs(NULL, NULL);
+ } else if(mess.m_type == DEV_PING) {
+ notify(mess.m_source);
} else {
f_busy = BSY_IDLE;
}
receive(ANY, &mess);
if (mess.m_type == SYN_ALARM) {
f_expire_tmrs(NULL, NULL);
+ } else if(mess.m_type == DEV_PING) {
+ notify(mess.m_source);
} else { /* expect HARD_INT */
f_busy = BSY_IDLE;
}
receive(ANY, &mess);
if (mess.m_type == SYN_ALARM) {
f_expire_tmrs(NULL, NULL);
+ } else if(mess.m_type == DEV_PING) {
+ notify(mess.m_source);
} else {
f_busy = BSY_IDLE;
}
continue; /* don't reply */
case SYN_ALARM: (*dp->dr_alarm)(dp, &mess);
continue; /* don't reply */
+ case DEV_PING: notify(mess.m_source);
+ continue;
default:
if(dp->dr_other)
r = (*dp->dr_other)(dp, &mess);
unsigned long dv_size;
int accumulated_read = 0;
struct logdevice *log;
+ static int f;
+ if(f++ > 100) exit(0);
if(log_device < 0 || log_device >= NR_DEVS)
return EIO;
case CANCEL: do_cancel(&pr_mess); break;
case HARD_INT: do_printer_output(); break;
case SYS_SIG: /* do nothing */ break;
+ case DEV_PING: notify(pr_mess.m_source); break;
default:
reply(TASK_REPLY, pr_mess.m_source, pr_mess.PROC_NR, EINVAL);
}
case SYN_ALARM: /* fall through */
expire_timers(); /* run watchdogs of expired timers */
continue; /* contine to check for events */
+ case DEV_PING:
+ notify(tty_mess.m_source);
+ continue;
case HARD_INT: { /* hardware interrupt notification */
if (tty_mess.NOTIFY_ARG & kbd_irq_set)
kbd_interrupt(&tty_mess);/* fetch chars from keyboard */