26#error "no user-serviceable parts inside"
47struct vdso_timehands32;
49typedef u_int timecounter_get_t(
struct timecounter *);
51typedef uint32_t timecounter_get_t(
struct timecounter *);
52#define tc_getfrequency _Timecounter_Get_frequency
54typedef void timecounter_pps_t(
struct timecounter *);
55typedef uint32_t timecounter_fill_vdso_timehands_t(
struct vdso_timehands *,
57typedef uint32_t timecounter_fill_vdso_timehands32_t(
struct vdso_timehands32 *,
61 timecounter_get_t *tc_get_timecount;
68 timecounter_pps_t *tc_poll_pps;
76 uint32_t tc_counter_mask;
78 uint64_t tc_frequency;
90#define TC_FLAGS_C2STOP 1
91#define TC_FLAGS_SUSPEND_SAFE 2
100 timecounter_fill_vdso_timehands_t *tc_fill_vdso_timehands;
101 timecounter_fill_vdso_timehands32_t *tc_fill_vdso_timehands32;
106extern int tc_min_ticktock_freq;
111u_int64_t tc_getfrequency(
void);
113void tc_setclock(
struct timespec *ts);
114void tc_ticktock(
int cnt);
115void cpu_tick_calibration(
void);
118SYSCTL_DECL(_kern_timecounter);