17#error "no user-serviceable parts inside"
34struct vdso_timehands32;
36typedef u_int timecounter_get_t(
struct timecounter *);
38typedef uint32_t timecounter_get_t(
struct timecounter *);
40typedef void timecounter_pps_t(
struct timecounter *);
41typedef uint32_t timecounter_fill_vdso_timehands_t(
struct vdso_timehands *,
43typedef uint32_t timecounter_fill_vdso_timehands32_t(
struct vdso_timehands32 *,
47 timecounter_get_t *tc_get_timecount;
54 timecounter_pps_t *tc_poll_pps;
62 uint32_t tc_counter_mask;
64 uint64_t tc_frequency;
76#define TC_FLAGS_C2STOP 1
77#define TC_FLAGS_SUSPEND_SAFE 2
86 timecounter_fill_vdso_timehands_t *tc_fill_vdso_timehands;
87 timecounter_fill_vdso_timehands32_t *tc_fill_vdso_timehands32;
92extern int tc_min_ticktock_freq;
97u_int64_t tc_getfrequency(
void);
99void tc_setclock(
struct timespec *ts);
100void tc_ticktock(
int cnt);
101void cpu_tick_calibration(
void);
104SYSCTL_DECL(_kern_timecounter);