]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - sys/amd64/include/clock.h
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / sys / amd64 / 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    init_TSC(void);
38 void    init_TSC_tc(void);
39
40 #define HAS_TIMER_SPKR 1
41 int     timer_spkr_acquire(void);
42 int     timer_spkr_release(void);
43 void    timer_spkr_setfreq(int freq);
44
45 #endif /* _KERNEL */
46
47 #endif /* !_MACHINE_CLOCK_H_ */