]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - sys/i386/include/clock.h
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / sys / i386 / include / clock.h
1 /*-
2  * Kernel interface to machine-dependent clock driver.
3  * Garrett Wollman, September 1994.
4  * This file is in the public domain.
5  *
6  * $FreeBSD$
7  */
8
9 #ifndef _MACHINE_CLOCK_H_
10 #define _MACHINE_CLOCK_H_
11
12 #ifdef _KERNEL
13 /*
14  * i386 to clock driver interface.
15  * XXX large parts of the driver and its interface are misplaced.
16  */
17 extern int      clkintr_pending;
18 extern u_int    i8254_freq;
19 extern int      i8254_max_count;
20 extern uint64_t tsc_freq;
21 extern int      tsc_is_broken;
22 extern int      tsc_is_invariant;
23
24 void    i8254_init(void);
25
26 struct trapframe;
27  
28 int     hardclockintr(struct trapframe *frame);
29 int     statclockintr(struct trapframe *frame);
30 int     profclockintr(struct trapframe *frame);
31
32 /*
33  * Driver to clock driver interface.
34  */
35
36 void    startrtclock(void);
37 void    timer_restore(void);
38 void    init_TSC(void);
39 void    init_TSC_tc(void);
40
41 #define HAS_TIMER_SPKR 1
42 int     timer_spkr_acquire(void);
43 int     timer_spkr_release(void);
44 void    timer_spkr_setfreq(int freq);
45
46 #endif /* _KERNEL */
47
48 #endif /* !_MACHINE_CLOCK_H_ */