#include #include #include #include #include #include #include int main() { int hpetFD = open("/dev/misc/hpet", O_RDWR); if (hpetFD < 0) { printf("Cannot open HPET driver: %s\n", strerror(errno)); return -1; } uint64 value, newValue; read(hpetFD, &value, sizeof(uint64)); snooze(1000000); read(hpetFD, &newValue, sizeof(uint64)); printf("HPET counter value difference (1 sec): %lld\n", newValue - value); status_t status; bigtime_t timeValue = 2000000; printf("Waiting 2 seconds...\n"); status = ioctl(hpetFD, HPET_WAIT_TIMER, &timeValue, sizeof(timeValue)); printf("%s.\n", strerror(status)); timeValue = 5000000; printf("Waiting 5 seconds...\n"); status = ioctl(hpetFD, HPET_WAIT_TIMER, &timeValue, sizeof(timeValue)); printf("%s.\n", strerror(status)); timeValue = 1000000; printf("Waiting 1 second...\n"); status = ioctl(hpetFD, HPET_WAIT_TIMER, &timeValue, sizeof(timeValue)); printf("%s.\n", strerror(status)); close(hpetFD); return 0; }