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_invariant; 22 extern int tsc_perf_stat; 23 #ifdef SMP 24 extern int smp_tsc; 25 #endif 26 27 void i8254_init(void); 28 void i8254_delay(int); 29 void clock_init(void); 30 void lapic_calibrate(void); 31 void tsc_init(void); 32 void tsc_calibrate(void); 33 34 /* 35 * Driver to clock driver interface. 36 */ 37 38 void startrtclock(void); 39 void start_TSC(void); 40 void resume_TSC(void); 41 42 #define HAS_TIMER_SPKR 1 43 int timer_spkr_acquire(void); 44 int timer_spkr_release(void); 45 void timer_spkr_setfreq(int freq); 46 47 #endif /* _KERNEL */ 48 49 #endif /* !_MACHINE_CLOCK_H_ */ 50