TNFCTL_REGISTER_FUNCS(3TNF) TNF Library Functions TNFCTL_REGISTER_FUNCS(3TNF)


NAME


tnfctl_register_funcs - register callbacks for probe creation and
destruction

SYNOPSIS


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 *));


DESCRIPTION


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.

RETURN VALUES


tnfctl_register_funcs() returns TNFCTL_ERR_NONE upon success.

ERRORS


TNFCTL_ERR_INTERNAL
An internal error occurred.


ATTRIBUTES


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


+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT Level | MT-Safe |
+---------------+-----------------+

SEE ALSO


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


March 1, 2004 TNFCTL_REGISTER_FUNCS(3TNF)