1139790Simp/*-
22858Swollman * Kernel interface to machine-dependent clock driver.
32858Swollman * Garrett Wollman, September 1994.
42858Swollman * This file is in the public domain.
512533Swollman *
650477Speter * $FreeBSD: releng/10.3/sys/i386/include/clock.h 221703 2011-05-09 17:34:00Z jkim $
72858Swollman */
82858Swollman
92858Swollman#ifndef _MACHINE_CLOCK_H_
104174Sbde#define	_MACHINE_CLOCK_H_
112858Swollman
1255205Speter#ifdef _KERNEL
134174Sbde/*
144174Sbde * i386 to clock driver interface.
1533809Sbde * XXX large parts of the driver and its interface are misplaced.
164174Sbde */
17122572Sjhbextern int	clkintr_pending;
18177631Sphkextern u_int	i8254_freq;
19177631Sphkextern int	i8254_max_count;
20110039Sphkextern uint64_t	tsc_freq;
21184102Sjkimextern int	tsc_is_invariant;
22220580Sjkimextern int	tsc_perf_stat;
234174Sbde
24166186Sbdevoid	i8254_init(void);
25166186Sbde
264174Sbde/*
274174Sbde * Driver to clock driver interface.
284174Sbde */
2919172Sbde
30178429Sphkvoid	startrtclock(void);
3192761Salfredvoid	timer_restore(void);
32110370Sphkvoid	init_TSC(void);
334174Sbde
34177642Sphk#define	HAS_TIMER_SPKR 1
35177642Sphkint	timer_spkr_acquire(void);
36177642Sphkint	timer_spkr_release(void);
37177642Sphkvoid	timer_spkr_setfreq(int freq);
38177642Sphk
3955205Speter#endif /* _KERNEL */
4019172Sbde
414174Sbde#endif /* !_MACHINE_CLOCK_H_ */
42