#ifndef _MACHINE_CLOCK_H_
#define _MACHINE_CLOCK_H_
#ifndef _SYS_TYPES_H_
#include <sys/types.h>
#endif
#ifdef _KERNEL
#ifndef _SYS_SYSTIMER_H_
#include <sys/systimer.h>
#endif
typedef struct TOTALDELAY {
int us;
int started;
sysclock_t last_clock;
} TOTALDELAY;
#endif
typedef uint64_t tsc_uclock_t;
typedef int64_t tsc_sclock_t;
#ifdef _KERNEL
extern int adjkerntz;
extern int disable_rtc_set;
extern int tsc_present;
extern int tsc_invariant;
extern int tsc_mpsync;
extern int wall_cmos_clock;
extern tsc_uclock_t tsc_frequency;
extern tsc_uclock_t tsc_oneus_approx;
extern int i8254_cputimer_disable;
int CHECKTIMEOUT(TOTALDELAY *);
int rtcin (int val);
int acquire_timer2 (int mode);
int release_timer2 (void);
int sysbeep (int pitch, int period);
void timer_restore (void);
typedef struct timecounter_init {
char *name;
void (*configure)(void);
} timecounter_init_t;
#define TIMECOUNTER_INIT(name, config) \
static struct timecounter_init name##_timer = { \
#name, config \
}; \
DATA_SET(timecounter_init_set, name##_timer);
#endif
#endif