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: src/sys/i386/include/clock.h,v 1.38.2.1 2002/11/02 04:41:50 iwasaki Exp $
7  */
8 
9 #ifndef _MACHINE_CLOCK_H_
10 #define	_MACHINE_CLOCK_H_
11 
12 #ifdef _KERNEL
13 
14 #ifndef _SYS_TYPES_H_
15 #include <sys/types.h>
16 #endif
17 
18 typedef uint64_t tsc_uclock_t;
19 typedef int64_t tsc_sclock_t;
20 
21 /*
22  * i386 to clock driver interface.
23  * XXX large parts of the driver and its interface are misplaced.
24  */
25 extern int	adjkerntz;
26 extern int	disable_rtc_set;
27 extern u_int	timer_freq;
28 extern int	timer0_max_count;
29 extern int	tsc_present;
30 extern int	tsc_invariant;
31 extern int	tsc_mpsync;
32 extern int	tsc_is_broken;
33 extern int	wall_cmos_clock;
34 extern tsc_uclock_t tsc_frequency;
35 extern tsc_uclock_t tsc_oneus_approx;	/* do not use for fine calc, min 1 */
36 
37 /*
38  * Driver to clock driver interface.
39  */
40 
41 int	rtcin (int val);
42 int	acquire_timer2 (int mode);
43 int	release_timer2 (void);
44 int	sysbeep (int pitch, int period);
45 void	timer_restore (void);
46 
47 #endif /* _KERNEL */
48 
49 #endif /* !_MACHINE_CLOCK_H_ */
50