static int def_tmr_open (int dev, int mode) { if (opened) return RET_ERROR (EBUSY); tmr_reset (); curr_tempo = 60; curr_timebase = HZ; opened = 1; ACTIVATE_TIMER (def_tmr, poll_def_tmr, 1); return 0; }
static void poll_def_tmr (unsigned long dummy) { if (opened) { ACTIVATE_TIMER (def_tmr, poll_def_tmr, 1); if (tmr_running) { tmr_ctr++; curr_ticks = ticks_offs + tmr2ticks (tmr_ctr); if (curr_ticks >= next_event_time) { next_event_time = 0xffffffff; sequencer_timer (); } } } }
static void poll_uart6850 (unsigned long dummy) { unsigned long flags; DEFINE_TIMER (uart6850_timer, poll_uart6850); if (!(uart6850_opened & OPEN_READ)) return; /* * No longer required */ DISABLE_INTR (flags); if (input_avail ()) uart6850_input_loop (); ACTIVATE_TIMER (uart6850_timer, poll_uart6850, 1); /* * Come back later */ RESTORE_INTR (flags); }