Provided by: libtracefs-doc_1.2.5-1_all 

NAME
tracefs_instance_create, tracefs_instance_destroy, tracefs_instance_alloc, 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);
struct tracefs_instance *tracefs_instance_alloc(const char *tracing_dir, const char *name);
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 with name does not yet exist in the system, it will be created. The name
could be NULL, then the new tracefs_instance structure is initialised for the top instance. Note that the
top instance cannot be created in the system, if it does not exist.
The tracefs_instance_destroy() removes the instance from the system, but does not free the structure.
tracefs_instance_free()_ must still be called on instance.
The tracefs_instance_alloc() function allocates a new tracefs_instance structure for existing trace
instance. If the instance does not exist in the system, the function fails. The tracing_dir parameter
points to the system trace directory. It can be NULL, then default system trace directory is used. This
parameter is useful to allocate instances to trace directories, copied from another machine. The name is
the name of the instance, or NULL for the top instance in the given tracing_dir.
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() and tracefs_instance_alloc() functions return a pointer to a newly
allocated tracefs_instance structure. It must be freed with tracefs_instance_free().
The tracefs_instance_destroy() function returns 0 if it succeeds to remove the instance, otherwise it
returns -1 if the instance does not exist or it fails to remove it.
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() or tracefs_instance_alloc().
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);
tracefs_instance_free(inst);
...
struct tracefs_instance *inst = tracefs_instance_alloc(NULL, "bar");
if (!inst) {
/* Error allocating 'bar' trace instance */
...
}
...
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
libtracefs 1.2.5 08/29/2021 LIBTRACEFS(3)