libtracefs 1.0.0
Initial release of libtracefs, giving the following functions:
const char *tracefs_tracing_dir(void);
Return the string holding the tracefs mount point.
char *tracefs_get_tracing_file(const char *name);
Return a file name with the tracefs mount point prefixed to it.
void tracefs_put_tracing_file(char *name);
Free the name returned from tracefs_get_tracing_file()
struct tracefs_instance *tracefs_instance_create(const char *name);
Create a tracing instance (sub buffer) with the given name.
void tracefs_instance_free(struct tracefs_instance *instance);
Free an instance returned from tracefs_instance_create().
int tracefs_instance_destroy(struct tracefs_instance *instance);
Free the instance returned from tracefs_instance_create() and also
remove it (the sub buffer) from the tracefs file system.
bool tracefs_instance_is_new(struct tracefs_instance *instance);
Retuns true if tracefs_instance_create() created a new instance in
the tracefs file system, otherwise it returns false if the instance
already existed.
const char *tracefs_instance_get_name(struct tracefs_instance *instance);
Returns the name used to create the instance.
char * tracefs_instance_get_file(struct tracefs_instance *instance, const char *file);
Returns a file name with the path of the instance in the tracefs
file system prefixed to it. (Note, passing in NULL, will return a
name with just the tracefs mount point prefixed, making it
equivalent to tracefs_get_tracing_file()).
char *tracefs_instance_get_dir(struct tracefs_instance *instance);
Returns the full path of the instance sub buffer that exists in
the tracefs file system.
int tracefs_instance_file_write(struct tracefs_instance *instance,
const char *file, const char *str);
Writes a string to the file that exists in the instance sub buffer
on the tracefs file system. Note, file is a relative path from
the instance sub buffer location.
char *tracefs_instance_file_read(struct tracefs_instance *instance,
char *file, int *psize);
Reads a string to the file that exists in the instance sub buffer
on the tracefs file system. Note, file is a relative path from
the instance sub buffer location.
int tracefs_instances_walk(int (*callback)(const char *, void *), void *context);
Executes the function callback() for each sub buffer instance (does not
execute on the top level mount point). It can stop the walk if callback()
returns a non-zero number.
bool tracefs_instance_exists(const char *name);
Returns true if the given name of a instance sub buffer exists in the tracefs
file system.
bool tracefs_file_exists(struct tracefs_instance *instance, char *name);
Returns true if a file exists in the instance sub buffer, in the tracefs
file system.
bool tracefs_dir_exists(struct tracefs_instance *instance, char *name);
Returns true if a directory exists in the instance sub buffer, in the tracefs
file system.
char **tracefs_event_systems(const char *tracing_dir);
Returns an array of event system names from the tracing_dir path. If tracing_dir
is NULL, then the tracefs mount point is used. The tracing_dir could also be
a path to a copy of the tracefs file system from another machine.
char **tracefs_system_events(const char *tracing_dir, const char *system);
Returns an array of events for a given system from the tracing_dir path. If
tracing_dir is NULL, then the tracefs mount point is used. The tracing_dir
could also be a path to a copy of the tracefs file system from another machine.
void tracefs_list_free(char **list);
Frees the list returned by tracefs_event_systems() or tracefs_system_events().
int tracefs_iterate_raw_events(struct tep_handle *tep,
struct tracefs_instance *instance,
cpu_set_t *cpus, int cpu_size,
int (*callback)(struct tep_event *,
struct tep_record *,
int, void *),
void *callback_context);
This will read the binary raw ring buffers from the tracefs file system
and call the callback() for each event it encounters with that event
given by a tep_record. This iterates over all CPUs or a subset of
CPUs if a cpu_set is passed in. But the iteration will happen for one
CPU at a time.
char **tracefs_tracers(const char *tracing_dir);
Returns an array of available tracers. If tracing_dir is NULL, it will use
the tracefs mount point.
struct tep_handle *tracefs_local_events(const char *tracing_dir);
This will allocate and fill in a libtraceevent tep structure with information
on how to parse raw events. If tracing_dir is NULL, it will use the tracefs
mount point.
struct tep_handle *tracefs_local_events_system(const char *tracing_dir,
const char * const *sys_names);
Similar to tracefs_local_events(), but may filter a subset of the systems
to be loaded, by passing in an array of system names.
int tracefs_fill_local_events(const char *tracing_dir,
struct tep_handle *tep, int *parsing_failures);
Similar to tracefs_local_events() but works on an already allocated
libtraceveent tep handle.
char *tracefs_get_clock(struct tracefs_instance *instance);
Returns the clock name being used by a given instance, or the top level
tracefs system if NULL is passed in.
libtracefs: version 1.0.0
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed