void alarm_handler(int sig, struct sigcontext sc) { if(!timer_irq_inited) return; if(sig == SIGALRM) switch_timers(0); CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas, sig, &sc); if(sig == SIGALRM) switch_timers(1); }
void alarm_handler(int sig) { struct sigcontext *sc; ARCH_GET_SIGCONTEXT(sc, sig); if(!timer_irq_inited) return; if(sig == SIGALRM) switch_timers(0); CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas, sig, sc); if(sig == SIGALRM) switch_timers(1); }
static void real_alarm_handler(int sig, struct sigcontext *sc) { if(!timer_irq_inited){ signals_enabled = 1; return; } if(sig == SIGALRM) switch_timers(0); CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas, sig, sc); if(sig == SIGALRM) switch_timers(1); }
void switch_to_skas(void *prev, void *next) { struct task_struct *from, *to; from = prev; to = next; /* XXX need to check runqueues[cpu].idle */ if(current->pid == 0) switch_timers(0); switch_threads(&from->thread.mode.skas.switch_buf, to->thread.mode.skas.switch_buf); arch_switch_to_skas(current->thread.prev_sched, current); if(current->pid == 0) switch_timers(1); }