Provided by: libtracefs-doc_1.8.0-1ubuntu1_all bug

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

       #include <tracefs.h>

       char *tracefs_get_tracing_file(const char *name);
       void tracefs_put_tracing_file(char *name);
       const char *tracefs_tracing_dir(void);
       const char *tracefs_debug_dir(void);
       int tracefs_set_tracing_dir(char *tracing_dir)
       int tracefs_tracing_dir_is_mounted(bool mount, const char **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

           #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

           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

           Steven Rostedt <rostedt@goodmis.org[1]>
           Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>

REPORTING BUGS

       Report bugs to <linux-trace-devel@vger.kernel.org[3]>

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

NOTES

        1. rostedt@goodmis.org
           mailto:rostedt@goodmis.org

        2. tz.stoyanov@gmail.com
           mailto:tz.stoyanov@gmail.com

        3. linux-trace-devel@vger.kernel.org
           mailto:linux-trace-devel@vger.kernel.org