diff options
author | Akinori MUSHA <knu@FreeBSD.org> | 2000-04-03 15:28:30 +0000 |
---|---|---|
committer | Akinori MUSHA <knu@FreeBSD.org> | 2000-04-03 15:28:30 +0000 |
commit | 3cf900afec2aff896e54b02214e9c9d023d0cd20 (patch) | |
tree | 25af9c88375549ba5c87e1b652d23c1871e35a73 /emulators/rtc/files/test.c | |
parent | Upgrade to 4.16. (diff) |
This is rtc, a kernel module for /dev/rtc device support.
Some apps such as VMware for Linux would be happy with it.
The code was originally written by Vladimir N. Silyaev.
Note: It _includes_ Linux ioctl support, but basically it's
FreeBSD native stuff. I'm importing this into emulators
category for convevience' sake. Check it out.
Notes
Notes:
svn path=/head/; revision=27306
Diffstat (limited to 'emulators/rtc/files/test.c')
-rw-r--r-- | emulators/rtc/files/test.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/emulators/rtc/files/test.c b/emulators/rtc/files/test.c new file mode 100644 index 000000000000..664441c20663 --- /dev/null +++ b/emulators/rtc/files/test.c @@ -0,0 +1,56 @@ +#include <sys/types.h> +#include <sys/time.h> +#include <unistd.h> +#include <fcntl.h> +#include <stdio.h> +#include <string.h> +#include <sys/ioccom.h> + +#include "rtc.h" + + +int main(void) +{ + int rtc; + fd_set rset; + int i,rc; + int ntests=100; + struct timeval tv; + struct timeval begin,end,delta; + + + rtc = open("/dev/rtc", O_RDONLY); + if (rtc<0) { + perror("/dec/rtc"); + return 1; + } + + rc = ioctl(rtc, RTCIO_IRQP_SET, 512); + if (rc<0) { + perror("/dev/rtc"); + return 1; + } + + rc = ioctl(rtc, RTCIO_PIE_ON, NULL); + if (rc<0) { + perror("/dev/rtc"); + return 1; + } + + gettimeofday(&begin, NULL); + for (i=0; i<ntests; i++) { + FD_ZERO(&rset); + FD_SET(rtc, &rset); + tv.tv_sec=0; + tv.tv_usec=10000; + rc=select(rtc+1, &rset, NULL, NULL, &tv); + } + gettimeofday(&end, NULL); + timersub(&end, &begin, &delta); + printf("time %ld msec per test\n", (delta.tv_sec*1000+delta.tv_usec/1000)/ntests); + return 0; +} + + + + |