xref: /csrg-svn/usr.bin/ktrace/subr.c (revision 45984)
144586Smarc /*-
244586Smarc  * Copyright (c) 1988 The Regents of the University of California.
344586Smarc  * All rights reserved.
444586Smarc  *
544586Smarc  * %sccs.include.redist.c%
644586Smarc  */
744586Smarc 
844586Smarc #ifndef lint
9*45984Sbostic static char sccsid[] = "@(#)subr.c	5.1 (Berkeley) 01/17/91";
1044586Smarc #endif /* not lint */
1144586Smarc 
12*45984Sbostic #include <sys/param.h>
13*45984Sbostic #include <sys/file.h>
14*45984Sbostic #include <sys/user.h>
15*45984Sbostic #include <sys/proc.h>
16*45984Sbostic #include <sys/time.h>
17*45984Sbostic #include <sys/ktrace.h>
18*45984Sbostic #include <stdio.h>
1936507Smarc #include "ktrace.h"
2036507Smarc 
2144586Smarc getpoints(s)
2236507Smarc 	char *s;
2336507Smarc {
2436507Smarc 	int facs = 0;
2536507Smarc 
2636507Smarc 	while (*s) {
2736507Smarc 		switch(*s) {
2836507Smarc 		case 'c':
2936507Smarc 			facs |= KTRFAC_SYSCALL | KTRFAC_SYSRET;
3036507Smarc 			break;
3136507Smarc 		case 'n':
3236507Smarc 			facs |= KTRFAC_NAMEI;
3336507Smarc 			break;
3444586Smarc 		case 'i':
3536507Smarc 			facs |= KTRFAC_GENIO;
3636507Smarc 			break;
3736507Smarc 		case 's':
3844586Smarc 			facs |= KTRFAC_PSIG;
3936507Smarc 			break;
4036507Smarc 		default:
4136507Smarc 			return (-1);
4236507Smarc 		}
4336507Smarc 		s++;
4436507Smarc 	}
4536507Smarc 	return (facs);
4636507Smarc }
4744586Smarc 
4844586Smarc timevaladd(t1, t2)
4944586Smarc 	struct timeval *t1, *t2;
5044586Smarc {
5144586Smarc 	t1->tv_sec += t2->tv_sec;
5244586Smarc 	t1->tv_usec += t2->tv_usec;
5344586Smarc 	timevalfix(t1);
5444586Smarc }
5544586Smarc 
5644586Smarc timevalsub(t1, t2)
5744586Smarc 	struct timeval *t1, *t2;
5844586Smarc {
5944586Smarc 	t1->tv_sec -= t2->tv_sec;
6044586Smarc 	t1->tv_usec -= t2->tv_usec;
6144586Smarc 	timevalfix(t1);
6244586Smarc }
6344586Smarc 
6444586Smarc timevalfix(t1)
6544586Smarc 	struct timeval *t1;
6644586Smarc {
6744586Smarc 	if (t1->tv_usec < 0) {
6844586Smarc 		t1->tv_sec--;
6944586Smarc 		t1->tv_usec += 1000000;
7044586Smarc 	}
7144586Smarc 	if (t1->tv_usec >= 1000000) {
7244586Smarc 		t1->tv_sec++;
7344586Smarc 		t1->tv_usec -= 1000000;
7444586Smarc 	}
7544586Smarc }
76