12 #ifndef _SYS_TIMETC_H_ 13 #define _SYS_TIMETC_H_ 17 #error "no user-serviceable parts inside" 33 struct vdso_timehands;
34 struct vdso_timehands32;
36 typedef u_int timecounter_get_t(
struct timecounter *);
38 typedef uint32_t timecounter_get_t(
struct timecounter *);
40 typedef void timecounter_pps_t(
struct timecounter *);
41 typedef uint32_t timecounter_fill_vdso_timehands_t(
struct vdso_timehands *,
43 typedef uint32_t timecounter_fill_vdso_timehands32_t(
struct vdso_timehands32 *,
47 timecounter_get_t *tc_get_timecount;
53 timecounter_pps_t *tc_poll_pps;
60 uint32_t tc_counter_mask;
62 uint64_t tc_frequency;
73 #define TC_FLAGS_C2STOP 1 74 #define TC_FLAGS_SUSPEND_SAFE 2 84 timecounter_fill_vdso_timehands_t *tc_fill_vdso_timehands;
85 timecounter_fill_vdso_timehands32_t *tc_fill_vdso_timehands32;
90 extern int tc_min_ticktock_freq;
95 u_int64_t tc_getfrequency(
void);
96 void tc_init(
struct timecounter *tc);
97 void tc_setclock(
struct timespec *ts);
98 void tc_ticktock(
int cnt);
99 void cpu_tick_calibration(
void);
102 SYSCTL_DECL(_kern_timecounter);