2 .\" Copyright (c) 1996 Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH TNFCTL_TRACE_STATE_SET 3TNF "Mar 4, 1997"
8 tnfctl_trace_state_set, tnfctl_filter_state_set, tnfctl_filter_list_get,
9 tnfctl_filter_list_add, tnfctl_filter_list_delete \- control kernel tracing and
14 \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-ltnfctl\fR [ \fIlibrary\fR ... ]
15 #include <tnf/tnfctl.h>
17 \fBtnfctl_errcode_t\fR \fBtnfctl_trace_state_set\fR(\fBtnfctl_handle_t *\fR\fIhndl\fR,
18 \fBboolean_t\fR \fItrace_state\fR);
23 \fBtnfctl_errcode_t\fR \fBtnfctl_filter_state_set\fR(\fBtnfctl_handle_t *\fR\fIhndl\fR,
24 \fBboolean_t\fR \fIfilter_state\fR);
29 \fBtnfctl_errcode_t\fR \fBtnfctl_filter_list_get\fR(\fBtnfctl_handle_t *\fR\fIhndl\fR,
30 \fBpid_t **\fR\fIpid_list\fR,\ \fBint *\fR\fIpid_count\fR);
35 \fBtnfctl_errcode_t\fR \fBtnfctl_filter_list_add\fR(\fBtnfctl_handle_t *\fR\fIhndl\fR,
36 \fBpid_t\fR \fIpid_to_add\fR);
41 \fBtnfctl_errcode_t\fR \fBtnfctl_filter_list_delete\fR(\fBtnfctl_handle_t *\fR\fIhndl\fR,
42 \fBpid_t\fR \fIpid_to_delete\fR);
48 The interfaces to control kernel tracing and process filtering are used only
49 with kernel handles, handles created by \fBtnfctl_kernel_open\fR(3TNF). These
50 interfaces are used to change the tracing and filter states for kernel
54 \fBtnfctl_trace_state_set()\fR sets the kernel global tracing state to "on" if
55 \fItrace_state\fR is \fBB_TRUE,\fR or to "off" if \fItrace_state\fR is
56 \fBB_FALSE.\fR For the kernel, \fItrace_state\fR is off by default.Probes that
57 are enabled will not write out data unless this state is on. Use
58 \fBtnfctl_trace_attrs_get\fR(3TNF) to retrieve the current tracing state.
61 \fBtnfctl_filter_state_set()\fR sets the kernel process filtering state to "on"
62 if \fIfilter_state\fR is \fBB_TRUE,\fR or to "off" if \fIfilter_state\fR is
63 \fBB_FALSE.\fR \fIfilter_state\fR is off by default. If it is on, only probe
64 points encountered by processes in the process filter set by
65 \fBtnfctl_filter_list_add()\fR will generate trace points. Use
66 \fBtnfctl_trace_attrs_get\fR(3TNF) to retrieve the current process filtering
70 \fBtnfctl_filter_list_get()\fR returns the process filter list as an array in
71 \fIpid_list\fR. The count of elements in the process filter list is returned in
72 \fIpid_count\fR. The caller should use \fBfree\fR(3C) to free memory allocated
73 for the array \fIpid_list\fR.
76 \fBtnfctl_filter_list_add()\fR adds \fIpid_to_add\fR to the process filter
77 list. The process filter list is maintained even when the process filtering
78 state is off, but it has no effect unless the process filtering state is on.
81 \fBtnfctl_filter_list_delete()\fR deletes \fIpid_to_delete\fR from the process
82 filter list. It returns an error if the process does not exist or is not in
87 The interfaces \fBtnfctl_trace_state_set()\fR, \fBtnfctl_filter_state_set()\fR,
88 \fBtnfctl_filter_list_add()\fR, \fBtnfctl_filter_list_delete()\fR, and
89 \fBtnfctl_filter_list_get()\fR return \fBTNFCTL_ERR_NONE\fR upon success.
93 The following error codes apply to \fBtnfctl_trace_state_set\fR:
97 \fB\fBTNFCTL_ERR_BADARG\fR\fR
100 The handle is not a kernel handle.
106 \fB\fBTNFCTL_ERR_NOBUF\fR\fR
109 Cannot turn on tracing without a buffer being allocated.
115 \fB\fBTNFCTL_ERR_BUFBROKEN\fR\fR
118 Tracing is broken in the target.
124 \fB\fBTNFCTL_ERR_INTERNAL\fR\fR
127 An internal error occurred.
132 The following error codes apply to \fBtnfctl_filter_state_set\fR:
136 \fB\fBTNFCTL_ERR_BADARG\fR\fR
139 The handle is not a kernel handle.
145 \fB\fBTNFCTL_ERR_INTERNAL\fR\fR
148 An internal error occurred.
153 The following error codes apply to \fBtnfctl_filter_list_add\fR:
157 \fB\fBTNFCTL_ERR_BADARG\fR\fR
160 The handle is not a kernel handle.
166 \fB\fBTNFCTL_ERR_NOPROCESS\fR\fR
169 No such process exists.
175 \fB\fBTNFCTL_ERR_ALLOCFAIL\fR\fR
178 A memory allocation failure occurred.
184 \fB\fBTNFCTL_ERR_INTERNAL\fR\fR
187 An internal error occurred.
192 The following error codes apply to \fBtnfctl_filter_list_delete\fR:
196 \fB\fBTNFCTL_ERR_BADARG\fR\fR
199 The handle is not a kernel handle.
205 \fB\fBTNFCTL_ERR_NOPROCESS\fR\fR
208 No such process exists.
214 \fB\fBTNFCTL_ERR_INTERNAL\fR\fR
217 An internal error occurred.
222 The following error codes apply to \fBtnfctl_filter_list_get\fR:
226 \fB\fBTNFCTL_ERR_BADARG\fR\fR
229 The handle is not a kernel handle.
235 \fB\fBTNFCTL_ERR_ALLOCFAIL\fR\fR
238 A memory allocation failure occurred.
244 \fB\fBTNFCTL_ERR_INTERNAL\fR\fR
247 An internal error occurred.
253 See \fBattributes\fR(5) for descriptions of the following attributes:
261 ATTRIBUTE TYPE ATTRIBUTE VALUE
269 \fBprex\fR(1), \fBTNF_PROBE\fR(3TNF), \fBfree\fR(3C), \fBlibtnfctl\fR(3TNF),
270 \fBtnfctl_kernel_open\fR(3TNF), \fBtnfctl_trace_attrs_get\fR(3TNF),
271 \fBtracing\fR(3TNF), \fBtnf_kernel_probes\fR(4), \fBattributes\fR(5)