xref: /csrg-svn/usr.bin/ktrace/subr.c (revision 44586)
1*44586Smarc /*-
2*44586Smarc  * Copyright (c) 1988 The Regents of the University of California.
3*44586Smarc  * All rights reserved.
4*44586Smarc  *
5*44586Smarc  * %sccs.include.redist.c%
6*44586Smarc  */
7*44586Smarc 
8*44586Smarc #ifndef lint
9*44586Smarc static char sccsid[] = "@(#)subr.c	1.2 (Berkeley) 06/29/90";
10*44586Smarc #endif /* not lint */
11*44586Smarc 
1236507Smarc #include "ktrace.h"
13*44586Smarc #include <sys/time.h>
1436507Smarc 
15*44586Smarc getpoints(s)
1636507Smarc 	char *s;
1736507Smarc {
1836507Smarc 	int facs = 0;
1936507Smarc 
2036507Smarc 	while (*s) {
2136507Smarc 		switch(*s) {
2236507Smarc 		case 'c':
2336507Smarc 			facs |= KTRFAC_SYSCALL | KTRFAC_SYSRET;
2436507Smarc 			break;
2536507Smarc 		case 'n':
2636507Smarc 			facs |= KTRFAC_NAMEI;
2736507Smarc 			break;
28*44586Smarc 		case 'i':
2936507Smarc 			facs |= KTRFAC_GENIO;
3036507Smarc 			break;
3136507Smarc 		case 's':
32*44586Smarc 			facs |= KTRFAC_PSIG;
3336507Smarc 			break;
3436507Smarc 		default:
3536507Smarc 			return (-1);
3636507Smarc 		}
3736507Smarc 		s++;
3836507Smarc 	}
3936507Smarc 	return (facs);
4036507Smarc }
41*44586Smarc 
42*44586Smarc timevaladd(t1, t2)
43*44586Smarc 	struct timeval *t1, *t2;
44*44586Smarc {
45*44586Smarc 
46*44586Smarc 	t1->tv_sec += t2->tv_sec;
47*44586Smarc 	t1->tv_usec += t2->tv_usec;
48*44586Smarc 	timevalfix(t1);
49*44586Smarc }
50*44586Smarc 
51*44586Smarc timevalsub(t1, t2)
52*44586Smarc 	struct timeval *t1, *t2;
53*44586Smarc {
54*44586Smarc 
55*44586Smarc 	t1->tv_sec -= t2->tv_sec;
56*44586Smarc 	t1->tv_usec -= t2->tv_usec;
57*44586Smarc 	timevalfix(t1);
58*44586Smarc }
59*44586Smarc 
60*44586Smarc timevalfix(t1)
61*44586Smarc 	struct timeval *t1;
62*44586Smarc {
63*44586Smarc 
64*44586Smarc 	if (t1->tv_usec < 0) {
65*44586Smarc 		t1->tv_sec--;
66*44586Smarc 		t1->tv_usec += 1000000;
67*44586Smarc 	}
68*44586Smarc 	if (t1->tv_usec >= 1000000) {
69*44586Smarc 		t1->tv_sec++;
70*44586Smarc 		t1->tv_usec -= 1000000;
71*44586Smarc 	}
72*44586Smarc }
73