24#error "no user-serviceable parts inside"
45struct vdso_timehands32;
47typedef u_int timecounter_get_t(
struct timecounter *);
49typedef uint32_t timecounter_get_t(
struct timecounter *);
50#define tc_getfrequency _Timecounter_Get_frequency
52typedef void timecounter_pps_t(
struct timecounter *);
53typedef uint32_t timecounter_fill_vdso_timehands_t(
struct vdso_timehands *,
55typedef uint32_t timecounter_fill_vdso_timehands32_t(
struct vdso_timehands32 *,
59 timecounter_get_t *tc_get_timecount;
66 timecounter_pps_t *tc_poll_pps;
74 uint32_t tc_counter_mask;
76 uint64_t tc_frequency;
88#define TC_FLAGS_C2STOP 1
89#define TC_FLAGS_SUSPEND_SAFE 2
98 timecounter_fill_vdso_timehands_t *tc_fill_vdso_timehands;
99 timecounter_fill_vdso_timehands32_t *tc_fill_vdso_timehands32;
104extern int tc_min_ticktock_freq;
109u_int64_t tc_getfrequency(
void);
111void tc_setclock(
struct timespec *ts);
112void tc_ticktock(
int cnt);
113void cpu_tick_calibration(
void);
116SYSCTL_DECL(_kern_timecounter);