Scroll to navigation

LIBTRACEFS(3) libtracefs Manual LIBTRACEFS(3)

NAME

tracefs_instance_create, tracefs_instance_destroy, tracefs_instance_free, tracefs_instance_is_new - Manage trace instances.

SYNOPSIS

#include <tracefs.h>
struct tracefs_instance *tracefs_instance_create(const char *name);
int tracefs_instance_destroy(struct tracefs_instance *instance);
void tracefs_instance_free(struct tracefs_instance *instance);
bool tracefs_instance_is_new(struct tracefs_instance *instance);

DESCRIPTION

This set of functions can be used to manage trace instances. A trace instance is a sub buffer used by the Linux tracing system. Given a unique name, the events enabled in an instance do not affect the main tracing system, nor other instances, as events enabled in the main tracing system or other instances do not affect the given instance.

The tracefs_instance_create() function allocates and initializes a new tracefs_instance structure and returns it. If the instance does not yet exist in the system, it will be created.

The tracefs_instance_destroy() frees the instance structure, and will also remove the trace instance from the system.

The tracefs_instance_free() function frees the tracefs_instance structure, without removing the trace instance from the system.

The tracefs_instance_is_new() function checks if the given instance is newly created by tracefs_instance_create(), or it has been in the system before that.

RETURN VALUE

The tracefs_instance_create() function returns a pointer to a newly allocated tracefs_instance structure. It must be freed with tracefs_instance_destroy() or tracefs_instance_free().

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

The tracefs_instance_is_new() function returns true if the tracefs_instance_create() that allocated instance also created the trace instance in the system, or false if the trace instance already existed in the system when instance was allocated by tracefs_instance_create().

EXAMPLE

#include <tracefs.h>
struct tracefs_instance *inst = tracefs_instance_create("foo");

if (!inst) {
/* Error creating a new trace instance */
...
}
...
if (tracefs_instance_is_new(inst))
tracefs_instance_destroy(inst);
else
tracefs_instance_free(inst);

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