144586Smarc /*- 262045Sbostic * Copyright (c) 1988, 1993 362045Sbostic * The Regents of the University of California. All rights reserved. 444586Smarc * 544586Smarc * %sccs.include.redist.c% 644586Smarc */ 744586Smarc 844586Smarc #ifndef lint 9*69074Sbostic static char sccsid[] = "@(#)subr.c 8.2 (Berkeley) 04/28/95"; 1044586Smarc #endif /* not lint */ 1144586Smarc 1245984Sbostic #include <sys/param.h> 1345984Sbostic #include <sys/file.h> 1445984Sbostic #include <sys/user.h> 1545984Sbostic #include <sys/proc.h> 1645984Sbostic #include <sys/time.h> 1745984Sbostic #include <sys/ktrace.h> 18*69074Sbostic 1945984Sbostic #include <stdio.h> 20*69074Sbostic 2136507Smarc #include "ktrace.h" 2236507Smarc getpoints(s)2344586Smarcgetpoints(s) 2436507Smarc char *s; 2536507Smarc { 2636507Smarc int facs = 0; 2736507Smarc 2836507Smarc while (*s) { 2936507Smarc switch(*s) { 3036507Smarc case 'c': 3136507Smarc facs |= KTRFAC_SYSCALL | KTRFAC_SYSRET; 3236507Smarc break; 3336507Smarc case 'n': 3436507Smarc facs |= KTRFAC_NAMEI; 3536507Smarc break; 3644586Smarc case 'i': 3736507Smarc facs |= KTRFAC_GENIO; 3836507Smarc break; 3936507Smarc case 's': 4044586Smarc facs |= KTRFAC_PSIG; 4136507Smarc break; 4253173Smarc case 'w': 4353173Smarc facs |= KTRFAC_CSW; 4453173Smarc break; 4553173Smarc case '+': 4653173Smarc facs |= DEF_POINTS; 4753173Smarc break; 4836507Smarc default: 4936507Smarc return (-1); 5036507Smarc } 5136507Smarc s++; 5236507Smarc } 5336507Smarc return (facs); 5436507Smarc } 5544586Smarc 5644586Smarc timevaladd(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 timevalsub(t1, t2) 6544586Smarc struct timeval *t1, *t2; 6644586Smarc { 6744586Smarc t1->tv_sec -= t2->tv_sec; 6844586Smarc t1->tv_usec -= t2->tv_usec; 6944586Smarc timevalfix(t1); 7044586Smarc } 7144586Smarc 7244586Smarc timevalfix(t1) 7344586Smarc struct timeval *t1; 7444586Smarc { 7544586Smarc if (t1->tv_usec < 0) { 7644586Smarc t1->tv_sec--; 7744586Smarc t1->tv_usec += 1000000; 7844586Smarc } 7944586Smarc if (t1->tv_usec >= 1000000) { 8044586Smarc t1->tv_sec++; 8144586Smarc t1->tv_usec -= 1000000; 8244586Smarc } 8344586Smarc } 84