GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: usr.bin/ktrace/subr.c Lines: 0 25 0.0 %
Date: 2017-11-07 Branches: 0 13 0.0 %

Line Branch Exec Source
1
/*	$OpenBSD: subr.c,v 1.13 2016/07/18 09:36:50 guenther Exp $	*/
2
/*	$NetBSD: subr.c,v 1.6 1995/08/31 23:01:45 jtc Exp $	*/
3
4
/*-
5
 * Copyright (c) 1988, 1993
6
 *	The Regents of the University of California.  All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 * 3. Neither the name of the University nor the names of its contributors
17
 *    may be used to endorse or promote products derived from this software
18
 *    without specific prior written permission.
19
 *
20
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
 * SUCH DAMAGE.
31
 */
32
33
#include <sys/param.h>	/* MAXCOMLEN */
34
#include <sys/file.h>
35
#include <sys/user.h>
36
#include <sys/proc.h>
37
#include <sys/time.h>
38
#include <sys/ktrace.h>
39
40
#include <stdio.h>
41
42
#include "ktrace.h"
43
#include "extern.h"
44
45
/*
46
 * If you change the trace point letters, then update to match:
47
 * ktrace/ktrace.1, ktrace/ltrace.1, kdump/kdump.1, and
48
 * usage() in kdump/kdump.c
49
 */
50
int
51
getpoints(const char *s, int defpoints)
52
{
53
	int facs = 0;
54
55
	while (*s) {
56
		switch(*s) {
57
		case 'c':
58
			facs |= KTRFAC_SYSCALL | KTRFAC_SYSRET;
59
			break;
60
		case 'i':
61
			facs |= KTRFAC_GENIO;
62
			break;
63
		case 'n':
64
			facs |= KTRFAC_NAMEI;
65
			break;
66
		case 'p':
67
			facs |= KTRFAC_PLEDGE;
68
			break;
69
		case 's':
70
			facs |= KTRFAC_PSIG;
71
			break;
72
		case 't':
73
			facs |= KTRFAC_STRUCT;
74
			break;
75
		case 'u':
76
			facs |= KTRFAC_USER;
77
			break;
78
		case 'x':
79
			facs |= KTRFAC_EXECARGS;
80
			break;
81
		case 'X':
82
			facs |= KTRFAC_EXECENV;
83
			break;
84
		case '+':
85
			facs |= defpoints;
86
			break;
87
		default:
88
			return (-1);
89
		}
90
		s++;
91
	}
92
	return (facs);
93
}