summaryrefslogtreecommitdiff
path: root/timertest.c
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2008-05-23 14:21:58 +0000
committerKevin P. Fleming <kpfleming@digium.com>2008-05-23 14:21:58 +0000
commit3403af6f5eba79740c98abb2678f9a66ef5a8190 (patch)
tree93415a9598e5363284832757de0596988a421aa6 /timertest.c
parentdb9cffbffeedcde4ee52027160b96a2548262c5d (diff)
initial copy
git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@4335 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'timertest.c')
-rw-r--r--timertest.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/timertest.c b/timertest.c
new file mode 100644
index 0000000..3a0c2e4
--- /dev/null
+++ b/timertest.c
@@ -0,0 +1,54 @@
+#include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <errno.h>
+
+#ifdef STANDALONE_ZAPATA
+#include "kernel/zaptel.h"
+#else
+#include <zaptel/zaptel.h>
+#endif
+
+int main(int argc, char *argv[])
+{
+ int fd;
+ int x = 8000;
+ int res;
+ fd_set fds;
+ struct timeval orig, now;
+ fd = open("/dev/zap/timer", O_RDWR);
+ if (fd < 0) {
+ fprintf(stderr, "Unable to open timer: %s\n", strerror(errno));
+ exit(1);
+ }
+ printf("Opened timer...\n");
+ if (ioctl(fd, ZT_TIMERCONFIG, &x)) {
+ fprintf(stderr, "Unable to set timer: %s\n", strerror(errno));
+ exit(1);
+ }
+ printf("Set timer duration to %d samples (%d ms)\n", x, x/8);
+ printf("Waiting...\n");
+ gettimeofday(&orig, NULL);
+ for(;;) {
+ FD_ZERO(&fds);
+ FD_SET(fd, &fds);
+ res = select(fd + 1, NULL, NULL, &fds, NULL);
+ if (res != 1) {
+ fprintf(stderr, "Unexpected result %d: %s\n", res, strerror(errno));
+ exit(1);
+ }
+ x = -1;
+ if (ioctl(fd, ZT_TIMERACK, &x)) {
+ fprintf(stderr, "Unable to ack timer: %s\n", strerror(errno));
+ exit(1);
+ }
+ gettimeofday(&now, NULL);
+ printf("Timer Expired (%ld ms)!\n", (now.tv_sec - orig.tv_sec) * 1000 + (now.tv_usec - orig.tv_usec) / 1000);
+ }
+ exit(0);
+}