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