1/*- 2 * Kernel interface to machine-dependent clock driver. 3 * Garrett Wollman, September 1994. 4 * This file is in the public domain. 5 */ 6 7#ifndef _MACHINE_CLOCK_H_ 8#define _MACHINE_CLOCK_H_ 9 10#ifdef _KERNEL 11/* 12 * i386 to clock driver interface. 13 * XXX large parts of the driver and its interface are misplaced. 14 */ 15extern int clkintr_pending; 16extern u_int i8254_freq; 17extern int i8254_max_count; 18extern uint64_t tsc_freq; 19extern int tsc_is_invariant; 20extern int tsc_perf_stat; 21#ifdef SMP 22extern int smp_tsc; 23#endif 24 25void i8254_init(void); 26void i8254_delay(int); 27void clock_init(void); 28void lapic_calibrate(void); 29void tsc_init(void); 30void tsc_calibrate(void); 31 32/* 33 * Driver to clock driver interface. 34 */ 35 36void startrtclock(void); 37void start_TSC(void); 38void resume_TSC(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