#include #include #include #include #include #include #include int main(int argc, char *argv[]) { int fd = open("/dev/rtc", O_RDONLY); long rate, fast = 8192; if (fd < 0) { perror("error opening /dev/rtc"); exit(1); } if (ioctl(fd, RTC_IRQP_READ, &rate) < 0) { perror("error fetching rate"); exit(2); } printf("Current RTC IRQ rate = %ld\n", rate); printf("New RTC IRQ rate = %ld\n", fast); if (ioctl(fd, RTC_IRQP_SET, fast) < 0) { perror("error setting fast rate"); exit(3); } if (ioctl(fd, RTC_PIE_ON, 0) < 0) { perror("error enabling interrupts"); exit(4); } printf("Press enter to stop\n", fast); getchar(); if (ioctl(fd, RTC_IRQP_SET, rate) < 0) { perror("error setting original rate"); exit(5); } if (ioctl(fd, RTC_PIE_OFF, 0) < 0) { perror("error disabling interrupts"); exit(6); } return 0; }