1 #ifndef _LINUX_TIMER_H
2 #define _LINUX_TIMER_H
3
4 /*
5 * DON'T CHANGE THESE!! Most of them are hardcoded into some assembly language
6 * as well as being defined here.
7 */
8
9 /*
10 * The timers are:
11 *
12 * BLANK_TIMER console screen-saver timer
13 *
14 * BEEP_TIMER console beep timer
15 *
16 * RS_TIMER timer for the RS-232 ports
17 *
18 * HD_TIMER harddisk timer
19 *
20 * HD_TIMER2 (atdisk2 patches)
21 *
22 * FLOPPY_TIMER floppy disk timer (not used right now)
23 *
24 * SCSI_TIMER scsi.c timeout timer
25 *
26 * NET_TIMER tcp/ip timeout timer
27 *
28 * COPRO_TIMER 387 timeout for buggy hardware..
29 *
30 * TAPE_QIC02_TIMER timer for QIC-02 tape driver (it's not hardcoded)
31 *
32 * MCD_TIMER Mitsumi CD-ROM Timer
33 */
34
35 #define BLANK_TIMER 0
36 #define BEEP_TIMER 1
37 #define RS_TIMER 2
38
39 #define HD_TIMER 16
40 #define FLOPPY_TIMER 17
41 #define SCSI_TIMER 18
42 #define NET_TIMER 19
43 #define SOUND_TIMER 20
44 #define COPRO_TIMER 21
45
46 #define TAPE_QIC02_TIMER 22 /* hhb */
47 #define MCD_TIMER 23
48
49 #define HD_TIMER2 24
50
51 struct timer_struct {
52 unsigned long expires;
53 void (*fn)(void);
54 };
55
56 extern unsigned long timer_active;
57 extern struct timer_struct timer_table[32];
58
59 /*
60 * This is completely separate from the above, and is the
61 * "new and improved" way of handling timers more dynamically.
62 * Hopefully efficient and general enough for most things.
63 *
64 * The "hardcoded" timers above are still useful for well-
65 * defined problems, but the timer-list is probably better
66 * when you need multiple outstanding timers or similar.
67 *
68 * The "data" field is in case you want to use the same
69 * timeout function for several timeouts. You can use this
70 * to distinguish between the different invocations.
71 */
72 struct timer_list {
73 struct timer_list *next;
74 unsigned long expires;
75 unsigned long data;
76 void (*function)(unsigned long);
77 };
78
79 extern void add_timer(struct timer_list * timer);
80 extern int del_timer(struct timer_list * timer);
81
82 #endif