/* * linux/include/asm-cris/fasttimer.h * * Fast timers for ETRAX100LX * This may be useful in other OS than Linux so use 2 space indentation... * Copyright (C) 2000, 2001, 2002, 2003 Axis Communications AB */ #include #include /* struct timeval */ #include /* The timer0 values gives 52us resolution (1/19200) or higher * but interrupts at HZ */ /* We use timer1 to generate interrupts at desired times. */ #ifdef CONFIG_ETRAX_FAST_TIMER typedef void fast_timer_function_type(unsigned long); struct fast_timer { /* Close to timer_list */ struct fast_timer *next; struct fast_timer *prev; struct timeval tv_set; struct timeval tv_expires; unsigned long delay_us; fast_timer_function_type *function; unsigned long data; const char *name; }; extern struct fast_timer *fast_timer_list; void start_one_shot_timer(struct fast_timer *t, fast_timer_function_type *function, unsigned long data, unsigned long delay_us, const char *name); int del_fast_timer(struct fast_timer * t); /* return 1 if deleted */ extern inline int fast_timer_pending (const struct fast_timer * t) { return (t->next != NULL) || (t->prev != NULL) || (t == fast_timer_list); } void schedule_usleep(unsigned long us); void fast_timer_init(void); #endif