| libtracefs(3) |
| ============= |
| |
| NAME |
| ---- |
| tracefs_trace_is_on, tracefs_trace_on, tracefs_trace_off, tracefs_trace_on_get_fd, |
| tracefs_trace_on_fd, tracefs_trace_off_fd - Functions to enable or disable tracing. |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| -- |
| *#include <tracefs.h>* |
| |
| int *tracefs_trace_is_on*(struct tracefs_instance pass:[*]_instance_); |
| int *tracefs_trace_on*(struct tracefs_instance pass:[*]_instance_); |
| int *tracefs_trace_off*(struct tracefs_instance pass:[*]_instance_); |
| int *tracefs_trace_on_get_fd*(struct tracefs_instance pass:[*]_instance_); |
| int *tracefs_trace_on_fd*(int _fd_); |
| int *tracefs_trace_off_fd*(int _fd_); |
| -- |
| |
| DESCRIPTION |
| ----------- |
| This set of functions can be used to check, enable or disable writing to the ring buffer in |
| the given trace instance. The tracing is enabled when writing to the ring buffer is enabled. |
| |
| The *tracefs_trace_is_on()* function checks if tracing is enabled for the given _instance_. If |
| _instance_ is NULL, the top instance is used. |
| |
| The *tracefs_trace_on()* and *tracefs_trace_off()* functions set the tracing in the _instance_ |
| to enable or disable state. If _instance_ is NULL, the top instance is used. |
| |
| The *tracefs_trace_on_get_fd()* function returns a file descriptor to the "tracing_on" file from |
| the given _instance_. If _instance_ is NULL, the top trace instance is used. The returned descriptor |
| can be used for fast enabling or disabling the tracing of the instance. |
| |
| The *tracefs_trace_on_fd()* and *tracefs_trace_off_fd()* functions set the tracing state to enable |
| or disable using the given _fd_. This file descriptor must be opened for writing with |
| *tracefs_trace_on_get_fd*(3) of the desired trace instance. These functions are faster than |
| *tracefs_trace_on* and *tracefs_trace_off*. |
| |
| RETURN VALUE |
| ------------ |
| The *tracefs_trace_is_on()* function returns 0 if tracing is disable, 1 if it is enabled or |
| -1 in case of an error. |
| |
| The *tracefs_trace_on_get_fd()* function returns a file descriptor to "tracing_on" |
| file for reading and writing, which must be closed wuth close(). In case of an error -1 is returned. |
| |
| The *tracefs_trace_on()*, *tracefs_trace_off()*, *tracefs_trace_on_fd()* and |
| *tracefs_trace_off_fd()* functions return -1 in case of an error or 0 otherwise. |
| |
| EXAMPLE |
| ------- |
| [source,c] |
| -- |
| #include <tracefs.h> |
| |
| int ret; |
| |
| ret = tracefs_trace_is_on(NULL); |
| if (ret == 0) { |
| /* Tracing is disabled in the top instance */ |
| } else if (ret == 1) { |
| /* Tracing is enabled in the top instance */ |
| } else { |
| /* Error getting tracing state of the top instance */ |
| } |
| |
| ... |
| |
| if (!tracefs_trace_on(NULL)) { |
| /* Enabled tracing in the top instance */ |
| |
| ... |
| |
| if (!tracefs_trace_off(NULL)) { |
| /* Disabled tracing in the top instance */ |
| } else { |
| /* Error disabling tracing in the top instance */ |
| } |
| } else { |
| /* Error enabling tracing in the top instance */ |
| } |
| |
| ... |
| |
| int fd = tracefs_trace_on_get_fd(NULL); |
| |
| if (fd < 0) { |
| /* Error opening tracing_on file */ |
| } |
| ... |
| if (!tracefs_trace_on_fd(fd)) { |
| /* Enabled tracing in the top instance */ |
| |
| ... |
| |
| if (!tracefs_trace_off_fd(fd)) { |
| /* Disabled tracing in the top instance */ |
| } else { |
| /* Error disabling tracing in the top instance */ |
| } |
| } else { |
| /* Error enabling tracing in the top instance */ |
| } |
| |
| ... |
| |
| close(fd); |
| -- |
| 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) 2021 VMware, Inc. Free use of this software is granted under |
| the terms of the GNU Public License (GPL). |