2 * Kernel interface to machine-dependent clock driver.
3 * Garrett Wollman, September 1994.
4 * This file is in the public domain.
6 * $FreeBSD: src/sys/i386/include/clock.h,v 1.38.2.1 2002/11/02 04:41:50 iwasaki Exp $
9 #ifndef _MACHINE_CLOCK_H_
10 #define _MACHINE_CLOCK_H_
13 #include <sys/types.h>
18 #ifndef _SYS_SYSTIMER_H_
19 #include <sys/systimer.h>
22 typedef struct TOTALDELAY
{
25 sysclock_t last_clock
;
30 typedef uint64_t tsc_uclock_t
;
31 typedef int64_t tsc_sclock_t
;
36 * x86 to clock driver interface.
37 * XXX large parts of the driver and its interface are misplaced.
40 extern int disable_rtc_set
;
41 extern u_int timer_freq
;
42 extern int timer0_max_count
;
43 extern int tsc_present
;
44 extern int tsc_invariant
;
45 extern int tsc_mpsync
;
46 extern int tsc_is_broken
;
47 extern int wall_cmos_clock
;
48 extern tsc_uclock_t tsc_frequency
;
49 extern tsc_uclock_t tsc_oneus_approx
; /* do not use for fine calc, min 1 */
52 * Driver to clock driver interface.
55 int CHECKTIMEOUT(TOTALDELAY
*);
57 int acquire_timer2 (int mode
);
58 int release_timer2 (void);
59 int sysbeep (int pitch
, int period
);
60 void timer_restore (void);
64 #endif /* !_MACHINE_CLOCK_H_ */