// SPDX-License-Identifier: GPL-2.0 /* * Real Time Clock Periodic Interrupt test program * * Since commit 6610e0893b8bc ("RTC: Rework RTC code to use timerqueue for * events"), PIE are completely handled using hrtimers, without actually using * any underlying hardware RTC. *
*/
/* * This expects the new RTC class driver framework, working with * clocks that will often not be clones of what the PC-AT had. * Use the command line to specify another RTC if you need one.
*/ staticconstchar default_rtc[] = "/dev/rtc0";
int main(int argc, char **argv)
{ int i, fd, retval; unsignedlong tmp, data, old_pie_rate; constchar *rtc = default_rtc; struct timeval start, end, diff;
switch (argc) { case 2:
rtc = argv[1]; break; case 1:
fd = open(default_rtc, O_RDONLY); if (fd == -1) {
printf("Default RTC %s does not exist. Test Skipped!\n", default_rtc); exit(KSFT_SKIP);
}
close(fd); break; default:
fprintf(stderr, "usage: rtctest [rtcdev] [d]\n"); return 1;
}
fd = open(rtc, O_RDONLY);
if (fd == -1) {
perror(rtc); exit(errno);
}
/* Read periodic IRQ rate */
retval = ioctl(fd, RTC_IRQP_READ, &old_pie_rate); if (retval == -1) { /* not all RTCs support periodic IRQs */ if (errno == EINVAL) {
fprintf(stderr, "\nNo periodic IRQ support\n"); goto done;
}
perror("RTC_IRQP_READ ioctl"); exit(errno);
}
fprintf(stderr, "\nPeriodic IRQ rate is %ldHz.\n", old_pie_rate);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.