'\" t .\" Title: libtracefs .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 05/25/2021 .\" Manual: libtracefs Manual .\" Source: libtracefs 1.2.0 .\" Language: English .\" .TH "LIBTRACEFS" "3" "05/25/2021" "libtracefs 1\&.2\&.0" "libtracefs Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" libtracefs \- Linux kernel trace file system library .SH "SYNOPSIS" .sp .nf \fB#include \fR Locations of tracing files and directories: char *\fBtracefs_get_tracing_file\fR(const char *\fIname\fR); void \fBtracefs_put_tracing_file\fR(char *\fIname\fR); const char *\fBtracefs_tracing_dir\fR(void); Trace instances: struct tracefs_instance *\fBtracefs_instance_create\fR(const char *\fIname\fR); int \fBtracefs_instance_destroy\fR(struct tracefs_instance *\fIinstance\fR); void \fBtracefs_instance_free\fR(struct tracefs_instance *\fIinstance\fR); bool \fBtracefs_instance_is_new\fR(struct tracefs_instance *\fIinstance\fR); bool \fBtracefs_file_exists\fR(struct tracefs_instance *\fIinstance\fR, char *\fIname\fR); bool \fBtracefs_dir_exists\fR(struct tracefs_instance *\fIinstance\fR, char *\fIname\fR); char *\fBtracefs_instance_get_file\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\fR); char *\fBtracefs_instance_get_dir\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_instance_file_open\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\fR, int \fImode\fR); int \fBtracefs_instance_file_write\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\fR, const char *\fIstr\fR); char *\fBtracefs_instance_file_read\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\fR, int *\fIpsize\fR); int \fBtracefs_instance_file_read_number\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\fR, long long int *\fIres\fR); const char *\fBtracefs_instance_get_name\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_instances_walk\fR(int (*\fIcallback\fR)(const char *, void *), void *\fIcontext)\fR; bool \fBtracefs_instance_exists\fR(const char *\fIname\fR); Trace events: char **\fBtracefs_event_systems\fR(const char *\fItracing_dir\fR); char **\fBtracefs_system_events\fR(const char *\fItracing_dir\fR, const char *\fIsystem\fR); int \fBtracefs_iterate_raw_events\fR(struct tep_handle *\fItep\fR, struct tracefs_instance *\fIinstance\fR, cpu_set_t *\fIcpus\fR, int \fIcpu_size\fR, int (*\fIcallback\fR)(struct tep_event *, struct tep_record *, int, void *), void *\fIcallback_context\fR); struct tep_handle *\fBtracefs_local_events\fR(const char *\fItracing_dir\fR); struct tep_handle *\fBtracefs_local_events_system\fR(const char *\fItracing_dir\fR, const char * const *\fIsys_names\fR); int \fBtracefs_fill_local_events\fR(const char *\fItracing_dir\fR, struct tep_handle *\fItep\fR, int *\fIparsing_failures\fR); Trace helper functions: void \fBtracefs_list_free\fR(char **\fIlist\fR); char **\fBtracefs_tracers\fR(const char *\fItracing_dir\fR); char *\fBtracefs_get_clock\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_trace_is_on\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_trace_on\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_trace_off\fR(struct tracefs_instance *\fIinstance\fR); int \fItracefs_trace_on_get_fd\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_trace_on_fd\fR(int \fIfd\fR); int \fBtracefs_trace_off_fd\fR(int \fIfd\fR); Writing data in the trace buffer: int \fBtracefs_print_init\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_printf\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfmt\fR, \fI\&...\fR); int \fBtracefs_vprintf\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfmt\fR, va_list \fIap\fR); void \fBtracefs_print_close\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_binary_init\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_binary_write\fR(struct tracefs_instance *\fIinstance\fR, void *\fIdata\fR, int \fIlen\fR); void \fBtracefs_binary_close\fR(struct tracefs_instance *\fIinstance\fR); Control library logs: int \fBtracefs_set_loglevel\fR(enum tep_loglevel \fIlevel\fR); .fi .SH "DESCRIPTION" .sp The libtracefs(3) library provides APIs to access kernel trace file system\&. .SH "FILES" .sp .if n \{\ .RS 4 .\} .nf \fBtracefs\&.h\fR Header file to include in order to have access to the library APIs\&. \fB\-ltracefs\fR Linker switch to add when building a program that uses the library\&. .fi .if n \{\ .RE .\} .SH "SEE ALSO" .sp \fIlibtraceevent(3)\fR \fItrace\-cmd(1)\fR .SH "AUTHOR" .sp .if n \{\ .RS 4 .\} .nf \fBSteven Rostedt\fR <\m[blue]\fBrostedt@goodmis\&.org\fR\m[]\&\s-2\u[1]\d\s+2> \fBTzvetomir Stoyanov\fR <\m[blue]\fBtz\&.stoyanov@gmail\&.com\fR\m[]\&\s-2\u[2]\d\s+2> .fi .if n \{\ .RE .\} .SH "REPORTING BUGS" .sp Report bugs to <\m[blue]\fBlinux\-trace\-devel@vger\&.kernel\&.org\fR\m[]\&\s-2\u[3]\d\s+2> .SH "LICENSE" .sp libtracefs is Free Software licensed under the GNU LGPL 2\&.1 .SH "RESOURCES" .sp \m[blue]\fBhttps://git\&.kernel\&.org/pub/scm/libs/libtrace/libtracefs\&.git/\fR\m[] .SH "COPYING" .sp Copyright (C) 2020 VMware, Inc\&. Free use of this software is granted under the terms of the GNU Public License (GPL)\&. .SH "NOTES" .IP " 1." 4 rostedt@goodmis.org .RS 4 \%mailto:rostedt@goodmis.org .RE .IP " 2." 4 tz.stoyanov@gmail.com .RS 4 \%mailto:tz.stoyanov@gmail.com .RE .IP " 3." 4 linux-trace-devel@vger.kernel.org .RS 4 \%mailto:linux-trace-devel@vger.kernel.org .RE