142 lines
4.6 KiB
Plaintext
142 lines
4.6 KiB
Plaintext
libtracefs(3)
|
|
=============
|
|
|
|
NAME
|
|
----
|
|
tracefs_options_get_supported, tracefs_option_is_supported, tracefs_options_get_enabled,
|
|
tracefs_option_is_enabled, tracefs_option_mask_is_set, tracefs_option_id
|
|
- Get and check ftrace options.
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
--
|
|
*#include <tracefs.h>*
|
|
|
|
const struct tracefs_options_mask pass:[*]*tracefs_options_get_supported*(struct tracefs_instance pass:[*]_instance_);
|
|
bool *tracefs_option_is_supported*(struct tracefs_instance pass:[*]_instance_, enum tracefs_option_id _id_);
|
|
const struct tracefs_options_mask pass:[*]*tracefs_options_get_enabled*(struct tracefs_instance pass:[*]_instance_);
|
|
bool *tracefs_option_is_enabled*(struct tracefs_instance pass:[*]_instance_, enum tracefs_option_id _id_);
|
|
bool *tracefs_option_mask_is_set*(const struct tracefs_options_mask *options, enum tracefs_option_id id);
|
|
enum tracefs_option_id *tracefs_option_id*(const char pass:[*]_name_);
|
|
--
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
This set of APIs can be used to get and check current ftrace options. Supported ftrace options may
|
|
depend on the kernel version and the kernel configuration.
|
|
|
|
The *tracefs_options_get_supported()* function gets all ftrace options supported by the system in
|
|
the given _instance_. If _instance_ is NULL, supported options of the top trace instance are
|
|
returned. The set of supported options is the same in all created trace instances, but may be different
|
|
than the top trace instance.
|
|
|
|
The *tracefs_option_is_supported()/ function checks if the option with given _id_ is supported by
|
|
the system in the given _instance_. If _instance_ is NULL, the top trace instance is used. If an
|
|
option is supported at the top trace instance, it it may not be supported in a created trace instance.
|
|
|
|
The *tracefs_options_get_enabled()* function gets all ftrace options, currently enabled in
|
|
the given _instance_. If _instance_ is NULL, enabled options of the top trace instance are returned.
|
|
|
|
The *tracefs_option_is_enabled()* function checks if the option with given _id_ is enabled in the
|
|
given _instance_. If _instance_ is NULL, the top trace instance is used.
|
|
|
|
The *tracefs_option_mask_is_set()* function checks if the bit, corresponding to the option with _id_ is
|
|
set in the _options_ bitmask returned from *tracefs_option_get_enabled()* and *tracefs_option_is_supported()*.
|
|
|
|
The *tracefs_option_id()* converts an option _name_ into its corresponding id, if it is found.
|
|
This allows to find the option _id_ to use in the other functions if only the _name_ is known.
|
|
|
|
RETURN VALUE
|
|
------------
|
|
The *tracefs_options_get_supported()* and *tracefs_options_get_enabled()* functions, on success,
|
|
return a pointer to the bitmask within the instance, or a global bitmask for the top level,
|
|
or NULL in case of an error. As the returned bitmask is part of the instance structure (or a
|
|
global variable) and must not be freed or modified.
|
|
|
|
The *tracefs_option_is_supported()* and *tracefs_option_is_enabled()* functions return true if the
|
|
option in supported / enabled, or false otherwise.
|
|
|
|
The *tracefs_option_mask_is_set()* returns true if the corresponding option is set in the mask
|
|
or false otherwise.
|
|
|
|
The *tracefs_option_id()* returns the corresponding id defined by *tracefs_options*(3) from
|
|
the given _name_. If the _name_ can not be found, then TRACEFS_OPTION_INVALID is returned.
|
|
|
|
EXAMPLE
|
|
-------
|
|
[source,c]
|
|
--
|
|
#include <tracefs.h>
|
|
...
|
|
const struct tracefs_options_mask *options;
|
|
...
|
|
options = tracefs_options_get_supported(NULL);
|
|
if (!options) {
|
|
/* Failed to get supported options */
|
|
} else {
|
|
...
|
|
}
|
|
...
|
|
options = tracefs_options_get_enabled(NULL);
|
|
if (!options) {
|
|
/* Failed to get options, enabled in the top instance */
|
|
} else {
|
|
...
|
|
}
|
|
if (tracefs_options_mask_is_set(options, TRACEFS_OPTION_LATENCY_FORMAT)) {
|
|
...
|
|
}
|
|
...
|
|
|
|
if (tracefs_option_is_supported(NULL, TRACEFS_OPTION_LATENCY_FORMAT)) {
|
|
/* Latency format option is supprted */
|
|
}
|
|
|
|
...
|
|
|
|
if (tracefs_option_is_enabled(NULL, TRACEFS_OPTION_STACKTRACE)) {
|
|
/* Stacktrace option is enabled in the top instance */
|
|
}
|
|
|
|
--
|
|
FILES
|
|
-----
|
|
[verse]
|
|
--
|
|
*tracefs.h*
|
|
Header file to include in order to have access to the library APIs.
|
|
*-ltracefs*
|
|
Linker switch to add when building a program that uses the library.
|
|
--
|
|
|
|
SEE ALSO
|
|
--------
|
|
*libtracefs*(3),
|
|
*libtraceevent*(3),
|
|
*trace-cmd*(1)
|
|
|
|
AUTHOR
|
|
------
|
|
[verse]
|
|
--
|
|
*Steven Rostedt* <rostedt@goodmis.org>
|
|
*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>
|
|
--
|
|
REPORTING BUGS
|
|
--------------
|
|
Report bugs to <linux-trace-devel@vger.kernel.org>
|
|
|
|
LICENSE
|
|
-------
|
|
libtracefs is Free Software licensed under the GNU LGPL 2.1
|
|
|
|
RESOURCES
|
|
---------
|
|
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
|
|
|
|
COPYING
|
|
-------
|
|
Copyright \(C) 2020 VMware, Inc. Free use of this software is granted under
|
|
the terms of the GNU Public License (GPL).
|