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*53173Smarc static char sccsid[] = "@(#)subr.c 5.2 (Berkeley) 04/15/92"; 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> 1845984Sbostic #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; 40*53173Smarc case 'w': 41*53173Smarc facs |= KTRFAC_CSW; 42*53173Smarc break; 43*53173Smarc case '+': 44*53173Smarc facs |= DEF_POINTS; 45*53173Smarc break; 4636507Smarc default: 4736507Smarc return (-1); 4836507Smarc } 4936507Smarc s++; 5036507Smarc } 5136507Smarc return (facs); 5236507Smarc } 5344586Smarc 5444586Smarc timevaladd(t1, t2) 5544586Smarc struct timeval *t1, *t2; 5644586Smarc { 5744586Smarc t1->tv_sec += t2->tv_sec; 5844586Smarc t1->tv_usec += t2->tv_usec; 5944586Smarc timevalfix(t1); 6044586Smarc } 6144586Smarc 6244586Smarc timevalsub(t1, t2) 6344586Smarc struct timeval *t1, *t2; 6444586Smarc { 6544586Smarc t1->tv_sec -= t2->tv_sec; 6644586Smarc t1->tv_usec -= t2->tv_usec; 6744586Smarc timevalfix(t1); 6844586Smarc } 6944586Smarc 7044586Smarc timevalfix(t1) 7144586Smarc struct timeval *t1; 7244586Smarc { 7344586Smarc if (t1->tv_usec < 0) { 7444586Smarc t1->tv_sec--; 7544586Smarc t1->tv_usec += 1000000; 7644586Smarc } 7744586Smarc if (t1->tv_usec >= 1000000) { 7844586Smarc t1->tv_sec++; 7944586Smarc t1->tv_usec -= 1000000; 8044586Smarc } 8144586Smarc } 82