clock.h revision 191766
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: head/sys/amd64/include/clock.h 191766 2009-05-03 17:47:21Z mav $
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 */
17extern int	clkintr_pending;
18extern u_int	i8254_freq;
19extern int	i8254_max_count;
20extern uint64_t	tsc_freq;
21extern int	tsc_is_broken;
22extern int	tsc_is_invariant;
23
24void	i8254_init(void);
25
26struct trapframe;
27
28int	hardclockintr(struct trapframe *frame);
29int	statclockintr(struct trapframe *frame);
30int	profclockintr(struct trapframe *frame);
31
32/*
33 * Driver to clock driver interface.
34 */
35
36void	startrtclock(void);
37void	init_TSC(void);
38void	init_TSC_tc(void);
39
40#define	HAS_TIMER_SPKR 1
41int	timer_spkr_acquire(void);
42int	timer_spkr_release(void);
43void	timer_spkr_setfreq(int freq);
44
45#endif /* _KERNEL */
46
47#endif /* !_MACHINE_CLOCK_H_ */
48