| libtracefs(3) |
| ============= |
| |
| NAME |
| ---- |
| tracefs_get_tracing_file, tracefs_put_tracing_file, tracefs_tracing_dir, tracefs_debug_dir, tracefs_set_tracing_dir, |
| tracefs_tracing_dir_is_mounted - Find and set locations of trace directory and files. |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| -- |
| *#include <tracefs.h>* |
| |
| char pass:[*]*tracefs_get_tracing_file*(const char pass:[*]_name_); |
| void *tracefs_put_tracing_file*(char pass:[*]_name_); |
| const char pass:[*]*tracefs_tracing_dir*(void); |
| const char pass:[*]*tracefs_debug_dir*(void); |
| int *tracefs_set_tracing_dir*(char pass:[*]_tracing_dir_) |
| int *tracefs_tracing_dir_is_mounted*(bool _mount_, const char pass:[**]_path_); |
| -- |
| |
| DESCRIPTION |
| ----------- |
| This set of APIs can be used to find the full path of the trace file |
| system mount point and trace files in it. |
| |
| The *tracefs_set_tracing_dir()* function sets a custom location of the |
| system's tracing directory mount point. Usually, the library auto detects |
| it using the information from the /proc/mounts file. Use this API only if the |
| mount point is not standard and cannot be detected by the library. The _tracing_dir_ |
| argument can be NULL, in that case the custom location is deleted and the library |
| auto detection logic is used. |
| |
| The *tracefs_get_tracing_file()* function returns the full path of the |
| file with given _name_ in the trace file system. The function works |
| only with files in the tracefs main directory, it is not trace instance |
| aware. It is recommended to use *tracefs_instance_get_file()* and |
| *tracefs_instance_get_dir()* instead. The returned string must be freed |
| with *tracefs_put_tracing_file()*. |
| |
| The *tracefs_put_tracing_file()* function frees trace file name, |
| returned by *tracefs_get_tracing_file()*. |
| |
| The *tracefs_tracing_dir()* function returns the full path to the |
| trace file system. In the first function call, the mount point of the |
| tracing file system is located, cached and returned. It will mount it, |
| if it is not mounted. On any subsequent call the cached path is returned. |
| The return string must _not_ be freed. |
| |
| The *tracefs_debug_dir()* is similar to *tracefs_tracing_dir()* except |
| that it will return where the debugfs file system is mounted. If it |
| is not mounted it will try to mount it. The return string must _not_ |
| be freed. |
| |
| *tracefs_tracing_dir_is_mounted()* returns 1 if the tracing directory is |
| already mounted and 0 if it is not. If _mount_ is true, it will try to |
| mount it if it is not, and returns 0 if it succesfully mounted it and -1 |
| if it did not. If _path_ is set, it will be assigned to the path where it |
| mounted it. _path_ is internal and should not be freed. |
| |
| RETURN VALUE |
| ------------ |
| The *tracefs_set_tracing_dir()* function returns 0 on success, -1 otherwise. |
| |
| The *tracefs_get_tracing_file()* function returns a string or NULL in case |
| of an error. The returned string must be freed with *tracefs_put_tracing_file()*. |
| |
| The *tracefs_tracing_dir()* function returns a constant string or NULL |
| in case of an error. The returned string must _not_ be freed. |
| |
| The *tracefs_debug_dir()* function returns a constant string or NULL |
| in case of an error. The returned string must _not_ be freed. |
| |
| The *tracefs_tracing_dir_is_mounted()* returns 1 if the tracing directory |
| is already mounted, 0 if it is not, and -1 on error. |
| |
| EXAMPLE |
| ------- |
| [source,c] |
| -- |
| #include <tracefs.h> |
| ... |
| char *trace_on = tracefs_get_tracing_file("tracing_on"); |
| if (trace_on) { |
| ... |
| tracefs_put_tracing_file(trace_on); |
| } |
| ... |
| const char *trace_dir = tracefs_tracing_dir(); |
| |
| -- |
| 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). |