DOKK / manpages / debian 11 / libtracefs-doc / tracefs_local_events.3.en
LIBTRACEFS(3) libtracefs Manual LIBTRACEFS(3)

tracefs_local_events, tracefs_local_events_system, tracefs_fill_local_events - Initialize a tep handler with trace events from the local system.

#include <tracefs.h>
struct tep_handle *tracefs_local_events(const char *tracing_dir);
struct tep_handle *tracefs_local_events_system(const char *tracing_dir, const char * const *sys_names);
int tracefs_fill_local_events(const char *tracing_dir, struct tep_handle *tep, int *parsing_failures);

Functions for initializing a tep handler with trace events from the local system.

The tracefs_local_events() function allocates a new tep handler and initializes it with events from all trace systems, located in the given tracing_dir directory. This could be NULL or the location of the tracefs mount point for the trace systems of the local machine, or it may be a path to a copy of the tracefs directory from another machine.

The tracefs_local_events_system() function allocates a new tep handler and initializes it with events from specified trace systems sys_names, located in the given tracing_dir directory. This could be NULL or the location of the tracefs mount point for the trace systems of the local machine, or it may be a path to a copy of the tracefs directory from another machine. The sys_names argument is an array of trace system names, that will be used for tep handler initialization. The last element in that array must be a NULL pointer.

The tracefs_fill_local_events() function initializes already allocated tep handler with events from all trace systems, located in the given tracing_dir directory. This could be NULL or the location of the tracefs mount point for the trace systems of the local machine, or it may be a path to a copy of the tracefs directory from another machine. The tep argument must be a pointer to already allocated tep handler, that is going to be initialized. The parsing_failures argument could be NULL or a pointer to an integer, where the number of failures while parsing the event files are returned.

The tracefs_local_events() and tracefs_local_events_system() functions return pointer to allocated and initialized tep handler, or NULL in case of an error. The returned tep handler must be freed with tep_free(3).

The tracefs_fill_local_events() function returns -1 in case of an error or 0 otherwise.

#include <tracefs.h>
struct tep_event *tep;
...

tep = tracefs_local_events(NULL);
if (!tep) {
/* Failed to initialise tep handler with local events from top instance */
...
} ...
tep_free(tep); ...
const char *systems[] = {"ftrace", "irq", NULL};
tep = tracefs_local_events_system(NULL, systems);
if (!tep) {
/* Failed to initialise tep handler with local events from
* ftrace and irq systems in top instance.
*/
...
} ...
tep_free(tep); ...
int parsing_failures;
tep = tep_alloc();
if (!tep) {
/* Failed to allocate a tep handler */
...
}
if (tracefs_fill_local_events(NULL, tep, &parsing_failures) < 0) {
/* Failed to initialise tep handler with local events from top instance */
} ...
tep_free(tep);

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.

libtracefs(3), libtraceevent(3), trace-cmd(1)

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

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

libtracefs is Free Software licensed under the GNU LGPL 2.1

https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/

Copyright (C) 2020 VMware, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).

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
01/15/2021 libtracefs 1.0.2