Copyright (c) 2004 Sun Microsystems, Inc. All Rights Reserved
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]
cc [ flag ... ] file ... -ltnfctl [ library ... ] #include <tnf/tnfctl.h> tnfctl_errcode_t tnfctl_register_funcs(tnfctl_handle_t *hndl, void * (*create_func) (tnfctl_handle_t *, tnfctl_probe_t *), void (*destroy_func)(void *));
The function tnfctl_register_funcs() is used to store client-specific data on a per-probe basis. It registers a creator and a destructor function with hndl, either of which can be NULL. The creator function is called for every probe that currently exists in hndl. Every time a new probe is discovered, that is brought in by dlopen(3C), create_func is called.
The return value of the creator function is stored as part of the probe state and can be retrieved by tnfctl_probe_state_get(3TNF) in the member field client_registered_data.
destroy_func is called for every probe handle that is freed. This does not necessarily happen at the time dlclose(3C) frees the shared object. The probe handles are freed only when hndl is closed by tnfctl_close(3TNF). If tnfctl_register_funcs() is called a second time for the same hndl, then the previously registered destructor function is called first for all of the probes.
tnfctl_register_funcs() returns TNFCTL_ERR_NONE upon success.
TNFCTL_ERR_INTERNAL
An internal error occurred.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
MT Level | MT-Safe |
prex(1), TNF_PROBE(3TNF), dlclose(3C), dlopen(3C), libtnfctl(3TNF), tnfctl_close(3TNF), tnfctl_probe_state_get(3TNF), tracing(3TNF), tnf_kernel_probes(4), attributes(5)
Linker and Libraries Guide