'\" t .\" Title: libtracefs .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 01/17/2023 .\" Manual: libtracefs Manual .\" Source: libtracefs 1.6.4 .\" Language: English .\" .TH "LIBTRACEFS" "3" "01/17/2023" "libtracefs 1\&.6\&.4" "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); const char *\fBtracefs_debug_dir\fR(void); int \fBtracefs_set_tracing_dir\fR(char *\fItracing_dir\fR) int \fBtracefs_tracing_dir_is_mounted\fR(bool \fImount\fR, const char **\fIpath\fR); Trace instances: struct tracefs_instance *\fBtracefs_instance_create\fR(const char *\fIname\fR); int \fBtracefs_instance_destroy\fR(struct tracefs_instance *\fIinstance\fR); struct tracefs_instance *\fBtracefs_instance_alloc\fR(const char *\fItracing_dir\fR, const char *\fIname\fR); void \fBtracefs_instance_free\fR(struct tracefs_instance *\fIinstance\fR); char **\fBtracefs_instances\fR(const char *\fIregex\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); int \fBtracefs_instance_file_append\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\fR, const char *\fIstr\fR); int \fBtracefs_instance_file_clear\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfile\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); const char *\fBtracefs_instance_get_trace_dir\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); int \fBtracefs_instance_set_affinity\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIcpu_str\fR); int \fBtracefs_instance_set_affinity_set\fR(struct tracefs_instance *\fIinstance\fR, cpu_set_t *\fIset\fR, size_t \fIset_size\fR); int \fBtracefs_instance_set_affinity_raw\fR(struct tracefs_instance *\fIinstance\fR, const char *\fImask\fR); char *\fBtracefs_instance_get_affinity\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_instance_get_affinity_set\fR(struct tracefs_instance *\fIinstance\fR, cpu_set_t *\fIset\fR, size_t \fIset_size\fR); char *\fBtracefs_instance_get_affinity_raw\fR(struct tracefs_instance *\fIinstance\fR); size_t \fBtracefs_instance_get_buffer_size\fR(struct tracefs_instance *\fIinstance\fR, int \fIcpu\fR); int \fBtracefs_instance_set_buffer_size\fR(struct tracefs_instance *\fIinstance\fR, size_t \fIsize\fR, int \fIcpu\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_event_enable\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR); int \fBtracefs_event_disable\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR); enum tracefs_enable_state \fBtracefs_event_is_enabled\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\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); void \fBtracefs_iterate_stop\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_follow_event\fR(struct tep_handle *\fItep\fR, struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent_name\fR, int (*\fIcallback\fR)(struct tep_event *, struct tep_record *, int, void *), void *\fIcallback_data\fR); int \fBtracefs_follow_missed_events\fR(struct tracefs_instance *\fIinstance\fR, int (*\fIcallback\fR)(struct tep_event *, struct tep_record *, int, void *), void *\fIcallback_data\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); int \fBtracefs_load_cmdlines\fR(const char *\fItracing_dir\fR, struct tep_handle *\fItep\fR); char *\fBtracefs_event_get_file\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR); char *\fBtracefs_event_file_read\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR, int *\fIpsize\fR); int \fBtracefs_event_file_write\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR, const char *\fIstr\fR); int \fBtracefs_event_file_append\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR, const char *\fIstr\fR); int \fBtracefs_event_file_clear\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR); bool \fBtracefs_event_file_exists\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIsystem\fR, const char *\fIevent\fR, Event filters: int \fBtracefs_filter_string_append\fR(struct tep_event *\fIevent\fR, char **\fIfilter\fR, struct tracefs_filter \fItype\fR, const char *\fIfield\fR, enum tracefs_synth_compare \fIcompare\fR, const char *\fIval\fR); int \fBtracefs_filter_string_verify\fR(struct tep_event *\fIevent\fR, const char *\fIfilter\fR, char **\fIerr\fR); int \fBtracefs_event_filter_apply\fR(struct tracefs_instance *\fIinstance\fR, struct tep_event *\fIevent\fR, const char *\fIfilter\fR); int \fBtracefs_event_filter_clear\fR(struct tracefs_instance *\fIinstance\fR, struct tep_event *\fIevent\fR); Function filters: int \fBtracefs_function_filter\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfilter\fR, const char *\fImodule\fR, int \fIflags\fR); int \fBtracefs_function_notrace\fR(struct tracefs_instance *\fIinstance\fR, const char *\fIfilter\fR, const char *\fImodule\fR, int \fIflags\fR); int \fBtracefs_filter_functions\fR(const char *\fIfilter\fR, const char *\fImodule\fR, char ***\fIlist\fR); Trace helper functions: void \fBtracefs_list_free\fR(char **\fIlist\fR); char **\fBtracefs_list_add\fR(char \fB*\fR\fB\fIlist\fR\fR\fB, const char *\fR\fB\fIstring\fR\fR\fB); int *tracefs_list_size\fR(char **\fIlist\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 \fBtracefs_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); Trace stream: ssize_t \fBtracefs_trace_pipe_stream\fR(int \fIfd\fR, struct tracefs_instance *\fIinstance\fR, int \fIflags\fR); ssize_t \fBtracefs_trace_pipe_print\fR(struct tracefs_instance *\fIinstance\fR, int \fIflags\fR); void \fBtracefs_trace_pipe_stop\fR(struct tracefs_instance *\fIinstance\fR); Trace options: const struct tracefs_options_mask *\fBtracefs_options_get_supported\fR(struct tracefs_instance *\fIinstance\fR); bool \fBtracefs_option_is_supported\fR(struct tracefs_instance *\fIinstance\fR, enum tracefs_option_id \fIid\fR); const struct tracefs_options_mask *\fBtracefs_options_get_enabled\fR(struct tracefs_instance *\fIinstance\fR); bool \fBtracefs_option_is_enabled\fR(struct tracefs_instance *\fIinstance\fR, enum tracefs_option_id \fIid\fR); bool \fBtracefs_option_mask_is_set\fR(const struct tracefs_options_mask \fBoptions, enum tracefs_option_id id); int *tracefs_option_enable\fR(struct tracefs_instance *\fIinstance\fR, enum tracefs_option_id \fIid\fR); int \fBtracefs_option_disable\fR(struct tracefs_instance *\fIinstance\fR, enum tracefs_option_id \fIid\fR); const char *\fBtracefs_option_name\fR(enum tracefs_option_id \fIid\fR); enum tracefs_option_id \fBtracefs_option_id\fR(const char *\fIname\fR); Ftrace tracers: char **\fBtracefs_tracers\fR(const char *\fItracing_dir\fR); bool \fBtracefs_tracer_available\fR(const char *\fItracing_dir\fR, const char *\fItracer\fR); int \fBtracefs_tracer_set\fR(struct tracefs_instance *\fIinstance\fR, enum tracefs_tracers \fItracer\fR); int \fBtracefs_tracer_set\fR(struct tracefs_instance *\fIinstance\fR, enum tracefs_tracers \fItracer\fR, const char *\fIname\fR); int \fBtracefs_tracer_clear\fR(struct tracefs_instance *\fIinstance\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); Dynamic event generic APIs: struct \fBtracefs_dynevent\fR; enum \fBtracefs_dynevent_type\fR; int \fBtracefs_dynevent_create\fR(struct tracefs_dynevent *\fIdevent\fR); int \fBtracefs_dynevent_destroy\fR(struct tracefs_dynevent *\fIdevent\fR, bool \fIforce\fR); int \fBtracefs_dynevent_destroy_all\fR(unsigned int \fItypes\fR, bool \fIforce\fR); void \fBtracefs_dynevent_free\fR(struct tracefs_dynevent *\fIdevent\fR); void \fBtracefs_dynevent_list_free\fR(struct tracefs_dynevent **\fIevents\fR); struct tracefs_dynevent *\fBtracefs_dynevent_get\fR(enum tracefs_dynevent_type \fItype\fR, const char *\fIsystem\fR, const char *\fIevent\fR); struct tracefs_dynevent **\fBtracefs_dynevent_get_all\fR(unsigned int \fItypes\fR, const char *\fIsystem\fR); enum tracefs_dynevent_type \fBtracefs_dynevent_info\fR(struct tracefs_dynevent *\fIdynevent\fR, char **\fIsystem\fR, char **\fIevent\fR, char **\fIprefix\fR, char **\fIaddr\fR, char **\fIformat\fR); struct tep_event *\fBtracefs_dynevent_get_event\fR(struct tep_handle *\fItep\fR, struct tracefs_dynevent *\fIdynevent\fR); Even probes (eprobes): struct tracefs_dynevent * \fBtracefs_eprobe_alloc\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fItarget_system\fR, const char *\fItarget_event\fR, const char *\fIfetchargs\fR); Uprobes, Kprobes and Kretprobes: struct tracefs_dynevent * \fBtracefs_kprobe_alloc\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIaddr\fR, const char *\fIformat\fR); struct tracefs_dynevent * \fBtracefs_kretprobe_alloc\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIaddr\fR, const char *\fIformat\fR, unsigned int \fImax\fR); int \fBtracefs_kprobe_raw\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIaddr\fR, const char *\fIformat\fR); int \fBtracefs_kretprobe_raw\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIaddr\fR, const char *\fIformat\fR); \fBtracefs_uprobe_alloc\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR, unsigned long long \fIoffset\fR, const char *\fIfetchargs\fR) \fBtracefs_uretprobe_alloc\fR(const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIfile\fR, unsigned long long \fIoffset\fR, const char *\fIfetchargs\fR); Synthetic events: struct tracefs_synth *\fBtracefs_sql\fR(struct tep_handle *\fItep\fR, const char *\fIname\fR, const char *\fIsql_buffer\fR, char **\fIerr\fR); struct tracefs_synth *\fBtracefs_synth_alloc\fR(struct tep_handle *\fItep\fR, const char *\fIname\fR, const char *\fIstart_system\fR, const char *\fIstart_event\fR, const char *\fIend_system\fR, const char *\fIend_event\fR, const char *\fIstart_match_field\fR, const char *\fIend_match_field\fR, const char *\fImatch_name\fR); int \fBtracefs_synth_add_match_field\fR(struct tracefs_synth *\fIsynth\fR, const char *\fIstart_match_field\fR, const char *\fIend_match_field\fR, const char *\fIname\fR); int \fBtracefs_synth_add_compare_field\fR(struct tracefs_synth *\fIsynth\fR, const char *\fIstart_compare_field\fR, const char *\fIend_compare_field\fR, enum tracefs_synth_calc \fIcalc\fR, const char *\fIname\fR); int \fBtracefs_synth_add_start_field\fR(struct tracefs_synth *\fIsynth\fR, const char *\fIstart_field\fR, const char *\fIname\fR); int \fBtracefs_synth_add_end_field\fR(struct tracefs_synth *\fIsynth\fR, const char *\fIend_field\fR, const char *\fIname\fR); int \fBtracefs_synth_append_start_filter\fR(struct tracefs_synth *\fIsynth\fR, struct tracefs_filter \fItype\fR, const char *\fIfield\fR, enum tracefs_synth_compare \fIcompare\fR, const char *\fIval\fR); int \fBtracefs_synth_append_end_filter\fR(struct tracefs_synth *\fIsynth\fR, struct tracefs_filter \fItype\fR, const char *\fIfield\fR, enum tracefs_synth_compare \fIcompare\fR, const char *\fIval\fR); void \fBtracefs_synth_free\fR(struct tracefs_synth *\fIsynth\fR); int \fBtracefs_synth_create\fR(struct tracefs_synth *\fIsynth\fR); int \fBtracefs_synth_destroy\fR(struct tracefs_synth *\fIsynth\fR); int \fBtracefs_synth_echo_cmd\fR(struct trace_seq *\fIseq\fR, struct tracefs_synth *\fIsynth\fR); bool \fBtracefs_synth_complete\fR(struct tracefs_synth *\fIsynth\fR); struct tracefs_hist *\fBtracefs_synth_get_start_hist\fR(struct tracefs_synth *\fIsynth\fR); int \fBtracefs_synth_trace\fR(struct tracefs_synth *\fIsynth\fR, enum tracefs_synth_handler \fItype\fR, const char *\fIvar\fR); int \fBtracefs_synth_snapshot\fR(struct tracefs_synth *\fIsynth\fR, enum tracefs_synth_handler \fItype\fR, const char *\fIvar\fR); int \fBtracefs_synth_save\fR(struct tracefs_synth *\fIsynth\fR, enum tracefs_synth_handler \fItype\fR, const char *\fIvar\fR, char **\fIsave_fields\fR); const char *\fBtracefs_synth_get_name\fR(struct tracefs_synth *\fIsynth\fR); int \fBtracefs_synth_raw_fmt\fR(struct trace_seq *\fIseq\fR, struct tracefs_synth *\fIsynth\fR); const char *\fBtracefs_synth_show_event\fR(struct tracefs_synth *\fIsynth\fR); const char *\fBtracefs_synth_show_start_hist\fR(struct tracefs_synth *\fIsynth\fR); const char *\fBtracefs_synth_show_end_hist\fR(struct tracefs_synth *\fIsynth\fR); struct tep_event *\fBtracefs_synth_get_event\fR(struct tep_handle *\fItep\fR, struct tracefs_synth *\fIsynth\fR); Ftrace errors reporting: char *\fBtracefs_error_last\fR(struct tracefs_instance *\fIinstance\fR); char *\fBtracefs_error_all\fR(struct tracefs_instance *\fIinstance\fR); int \fBtracefs_error_clear\fR(struct tracefs_instance *\fIinstance\fR); Histograms: struct tracefs_hist *\fBtracefs_hist_alloc\fR(struct tracefs_tep * \fItep\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIkey\fR, enum tracefs_hist_key_type \fItype\fR); struct tracefs_hist *\fBtracefs_hist_alloc_2d\fR(struct tracefs_tep * \fItep\fR, const char *\fIsystem\fR, const char *\fIevent\fR, const char *\fIkey1\fR, enum tracefs_hist_key_type \fItype1\fR, const char *\fIkey2\fR, enum tracefs_hist_key_type \fItype2\fR)); struct tracefs_hist *\fBtracefs_hist_alloc_nd\fR(struct tracefs_tep * \fItep\fR, const char *\fIsystem\fR, const char *\fIevent\fR, struct tracefs_hist_axis *\fIaxes\fR); struct tracefs_hist *\fBtracefs_hist_alloc_nd_cnt\fR(struct tep_handle *\fItep\fR, const char *\fIsystem\fR, const char *\fIevent_name\fR, struct tracefs_hist_axis_cnt *\fIaxes\fR); void \fBtracefs_hist_free\fR(struct tracefs_hist *\fIhist\fR); int \fBtracefs_hist_add_key\fR(struct tracefs_hist *\fIhist\fR, const char *\fIkey\fR, enum tracefs_hist_key_type \fItype\fR); int \fBtracefs_hist_add_key_cnt\fR(struct tracefs_hist *\fIhist\fR, const char *\fIkey\fR, enum tracefs_hist_key_type \fItype\fR, int \fIcnt\fR); int \fBtracefs_hist_add_value\fR(struct tracefs_hist *\fIhist\fR, const char *\fIvalue\fR); int \fBtracefs_hist_add_sort_key\fR(struct tracefs_hist *\fIhist\fR, const char *\fIsort_key\fR); int \fBtracefs_hist_set_sort_key\fR(struct tracefs_hist *\fIhist\fR, const char *\fIsort_key\fR, \fI\&...\fR); int \fBtracefs_hist_sort_key_direction\fR(struct tracefs_hist *\fIhist\fR, const char *\fIsort_key\fR, enum tracefs_hist_sort_direction \fIdir\fR); int \fBtracefs_hist_add_name\fR(struct tracefs_hist *\fIhist\fR, const char *\fIname\fR); int \fBtracefs_hist_append_filter\fR(struct tracefs_hist *\fIhist\fR, enum tracefs_filter \fItype\fR, const char *\fIfield\fR, enum tracefs_compare \fIcompare\fR, const char *\fIval\fR); int \fBtracefs_hist_echo_cmd\fR(struct trace_seq *\fIs\fR, struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR, enum tracefs_hist_command \fIcommand\fR); int \fBtracefs_hist_command\fR(struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR, enum tracefs_hist_command \fIcommand\fR); const char *\fBtracefs_hist_get_name\fR(struct tracefs_hist *\fIhist\fR); const char *\fBtracefs_hist_get_event\fR(struct tracefs_hist *\fIhist\fR); const char *\fBtracefs_hist_get_system\fR(struct tracefs_hist *\fIhist\fR); int \fBtracefs_hist_start\fR(struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR); int \fBtracefs_hist_destroy\fR(struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR); int \fBtracefs_hist_pause\fR(struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR); int \fBtracefs_hist_continue\fR(struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR); int \fBtracefs_hist_reset\fR(struct tracefs_instance *\fIinstance\fR, struct tracefs_hist *\fIhist\fR); Recording of trace_pipe_raw files: struct tracefs_cpu *\fBtracefs_cpu_open\fR(struct tracefs_instance *\fIinstance\fR, int \fIcpu\fR, bool \fInonblock\fR); struct tracefs_cpu *\fBtracefs_cpu_alloc_fd\fR(int \fIfd\fR, int \fIsubbuf_size\fR, bool \fInonblock\fR); void \fBtracefs_cpu_close\fR(struct tracefs_cpu *\fItcpu\fR); void \fBtracefs_cpu_free_fd\fR(struct tracefs_cpu *\fItcpu\fR); int \fBtracefs_cpu_read_size\fR(struct tracefs_cpu *\fItcpu\fR); int \fBtracefs_cpu_read\fR(struct tracefs_cpu *\fItcpu\fR, void *\fIbuffer\fR, bool \fInonblock\fR); int \fBtracefs_cpu_buffered_read\fR(struct tracefs_cpu *\fItcpu\fR, void *\fIbuffer\fR, bool \fInonblock\fR); int \fBtracefs_cpu_write\fR(struct tracefs_cpu *\fItcpu\fR, int \fIwfd\fR, bool \fInonblock\fR); int \fBtracefs_cpu_stop\fR(struct tracefs_cpu *\fItcpu\fR); int \fBtracefs_cpu_flush\fR(struct tracefs_cpu *\fItcpu\fR, void *\fIbuffer\fR); int \fBtracefs_cpu_flush_write\fR(struct tracefs_cpu *\fItcpu\fR, int \fIwfd\fR); int \fBtracefs_cpu_pipe\fR(struct tracefs_cpu *\fItcpu\fR, int \fIwfd\fR, bool \fInonblock\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 \fBlibtraceevent\fR(3), \fBtrace\-cmd\fR(1) .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