if_iwm - Adjust if_iwm_sta.h prototypes, don't pass iwm_node to rm_sta().
[dragonfly.git] / secure / lib / libcipher / test / speeddes.c
1 #include <sys/types.h>
2 #include <sys/time.h>
3 #include <sys/resource.h>
4 #include <signal.h>
5 #include <stdio.h>
6
7 int             keep_going, count, alternate, seconds, iters;
8 struct rusage   prior, now;
9 u_long          block[3];
10 char            *blk;
11
12 void
13 finish()
14 {
15         keep_going = 0;
16 }
17
18
19 main(int argc, char *argv[])
20 {
21         struct itimerval itv;
22         u_long  msecs;
23
24         if (argc < 2 || sscanf(argv[1], "%d", &seconds) != 1)
25                 seconds = 20;
26
27         if (argc < 3 || sscanf(argv[2], "%d", &iters) != 1)
28                 iters = 1;
29
30         printf ("Running des_cipher( , , 0L, %d) for %d seconds of vtime...\n",
31                 iters, seconds);
32
33         bzero(&itv, sizeof (itv));
34         signal (SIGVTALRM, finish);
35         itv.it_value.tv_sec = seconds;
36         itv.it_value.tv_usec = 0;
37         setitimer(ITIMER_VIRTUAL, &itv, NULL);
38
39         keep_going = 1;
40         if (getrusage(0, &prior) < 0) {
41                 perror("getrusage");
42                 exit(1);
43         }
44
45         blk = (char *) block;
46         (void)des_setkey(blk);
47         for (count = 0; keep_going; count++)
48                 (void) des_cipher(blk, blk, 0, iters);
49
50         if (getrusage(0, &now) < 0) {
51                 perror("getrusage");
52                 exit(1);
53         }
54
55         msecs = (now.ru_utime.tv_sec - prior.ru_utime.tv_sec) * 1000
56               + (now.ru_utime.tv_usec - prior.ru_utime.tv_usec) / 1000;
57         printf ("Did %d encryptions per second, each of %d iteration(s).\n",
58                 1000 * count / msecs, iters);
59         printf ("\tTotal %d blocks per second.\n", (1000*iters*count)/msecs);
60         exit(0);
61 }