te
Copyright 2002 Sun Microsystems Inc.
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.
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.
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]
TNF_PROCESS_DISABLE 3TNF "Feb 5, 2002"
NAME
tnf_process_disable, tnf_process_enable, tnf_thread_disable, tnf_thread_enable - probe control internal interface
SYNOPSIS

cc [ flag ... ] file ... -ltnfprobe [ library ... ]
#include <tnf/probe.h>



void tnf_process_disable(void);

void tnf_process_enable(void);

void tnf_thread_disable(void);

void tnf_thread_enable(void);
DESCRIPTION

There are three levels of granularity for controlling tracing and probe functions (called probing from here on): probing for the entire process, a particular thread, and the probe itself can be disabled or enabled. The first two (process and thread) are controlled by this interface. The probe is controlled with the prex(1) utility.

The tnf_process_disable() function turns off probing for the process. The default process state is to have probing enabled. The tnf_process_enable() function turns on probing for the process.

The tnf_thread_disable() function turns off probing for the currently running thread. Threads are "born" or created with this state enabled. The tnf_thread_enable() function turns on probing for the currently running thread. If the program is a non-threaded program, these two thread interfaces disable or enable probing for the process.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Unstable
MT-Level MT-Safe
SEE ALSO

prex(1), tnfdump(1), TNF_DECLARE_RECORD(3TNF), TNF_PROBE(3TNF), attributes(5)

NOTES

A probe is considered enabled only if:

prex(1) has enabled the probe AND

the process has probing enabled, which is the default or could be set with tnf_process_enable() AND

the thread that hits the probe has probing enabled, which is every thread's default or could be set with tnf_thread_enable().

There is a run time cost associated with determining that the probe is disabled. To reduce the performance effect of probes, this cost should be minimized. The quickest way that a probe can be determined to be disabled is by the enable control that prex(1) uses. Therefore, to disable all the probes in a process use the disable command in prex(1) rather than tnf_process_disable().

The tnf_process_disable() and tnf_process_enable() functions should only be used to toggle probing based on some internal program condition. The tnf_thread_disable() function should be used to turn off probing for threads that are uninteresting.