| 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). |