1*287e80b3SSadaf Ebrahimilibtracefs(3) 2*287e80b3SSadaf Ebrahimi============= 3*287e80b3SSadaf Ebrahimi 4*287e80b3SSadaf EbrahimiNAME 5*287e80b3SSadaf Ebrahimi---- 6*287e80b3SSadaf Ebrahimilibtracefs - Linux kernel trace file system library 7*287e80b3SSadaf Ebrahimi 8*287e80b3SSadaf EbrahimiSYNOPSIS 9*287e80b3SSadaf Ebrahimi-------- 10*287e80b3SSadaf Ebrahimi[verse] 11*287e80b3SSadaf Ebrahimi-- 12*287e80b3SSadaf Ebrahimi*#include <tracefs.h>* 13*287e80b3SSadaf Ebrahimi 14*287e80b3SSadaf EbrahimiLocations of tracing files and directories: 15*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_get_tracing_file*(const char pass:[*]_name_); 16*287e80b3SSadaf Ebrahimi void *tracefs_put_tracing_file*(char pass:[*]_name_); 17*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_tracing_dir*(void); 18*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_debug_dir*(void); 19*287e80b3SSadaf Ebrahimi int *tracefs_set_tracing_dir*(char pass:[*]_tracing_dir_) 20*287e80b3SSadaf Ebrahimi int *tracefs_tracing_dir_is_mounted*(bool _mount_, const char pass:[**]_path_); 21*287e80b3SSadaf Ebrahimi 22*287e80b3SSadaf EbrahimiTrace instances: 23*287e80b3SSadaf Ebrahimi struct tracefs_instance pass:[*]*tracefs_instance_create*(const char pass:[*]_name_); 24*287e80b3SSadaf Ebrahimi int *tracefs_instance_destroy*(struct tracefs_instance pass:[*]_instance_); 25*287e80b3SSadaf Ebrahimi struct tracefs_instance pass:[*]*tracefs_instance_alloc*(const char pass:[*]_tracing_dir_, const char pass:[*]_name_); 26*287e80b3SSadaf Ebrahimi void *tracefs_instance_free*(struct tracefs_instance pass:[*]_instance_); 27*287e80b3SSadaf Ebrahimi char pass:[**]*tracefs_instances*(const char pass:[*]_regex_); 28*287e80b3SSadaf Ebrahimi bool *tracefs_instance_is_new*(struct tracefs_instance pass:[*]_instance_); 29*287e80b3SSadaf Ebrahimi bool *tracefs_file_exists*(struct tracefs_instance pass:[*]_instance_, char pass:[*]_name_); 30*287e80b3SSadaf Ebrahimi bool *tracefs_dir_exists*(struct tracefs_instance pass:[*]_instance_, char pass:[*]_name_); 31*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_instance_get_file*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_); 32*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_instance_get_dir*(struct tracefs_instance pass:[*]_instance_); 33*287e80b3SSadaf Ebrahimi int *tracefs_instance_file_open*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_, int _mode_); 34*287e80b3SSadaf Ebrahimi int *tracefs_instance_file_write*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_, const char pass:[*]_str_); 35*287e80b3SSadaf Ebrahimi int *tracefs_instance_file_append*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_, const char pass:[*]_str_); 36*287e80b3SSadaf Ebrahimi int *tracefs_instance_file_clear*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_); 37*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_instance_file_read*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_, int pass:[*]_psize_); 38*287e80b3SSadaf Ebrahimi int *tracefs_instance_file_read_number*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_file_, long long int pass:[*]_res_); 39*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_instance_get_name*(struct tracefs_instance pass:[*]_instance_); 40*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_instance_get_trace_dir*(struct tracefs_instance pass:[*]_instance_); 41*287e80b3SSadaf Ebrahimi int *tracefs_instances_walk*(int (pass:[*]_callback_)(const char pass:[*], void pass:[*]), void pass:[*]_context)_; 42*287e80b3SSadaf Ebrahimi bool *tracefs_instance_exists*(const char pass:[*]_name_); 43*287e80b3SSadaf Ebrahimi int *tracefs_instance_set_affinity*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_cpu_str_); 44*287e80b3SSadaf Ebrahimi int *tracefs_instance_set_affinity_set*(struct tracefs_instance pass:[*]_instance_, cpu_set_t pass:[*]_set_, size_t _set_size_); 45*287e80b3SSadaf Ebrahimi int *tracefs_instance_set_affinity_raw*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_mask_); 46*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_instance_get_affinity*(struct tracefs_instance pass:[*]_instance_); 47*287e80b3SSadaf Ebrahimi int *tracefs_instance_get_affinity_set*(struct tracefs_instance pass:[*]_instance_, cpu_set_t pass:[*]_set_, size_t _set_size_); 48*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_instance_get_affinity_raw*(struct tracefs_instance pass:[*]_instance_); 49*287e80b3SSadaf Ebrahimi size_t *tracefs_instance_get_buffer_size*(struct tracefs_instance pass:[*]_instance_, int _cpu_); 50*287e80b3SSadaf Ebrahimi int *tracefs_instance_set_buffer_size*(struct tracefs_instance pass:[*]_instance_, size_t _size_, int _cpu_); 51*287e80b3SSadaf Ebrahimi 52*287e80b3SSadaf EbrahimiTrace events: 53*287e80b3SSadaf Ebrahimi char pass:[*]pass:[*]*tracefs_event_systems*(const char pass:[*]_tracing_dir_); 54*287e80b3SSadaf Ebrahimi char pass:[*]pass:[*]*tracefs_system_events*(const char pass:[*]_tracing_dir_, const char pass:[*]_system_); 55*287e80b3SSadaf Ebrahimi int *tracefs_event_enable*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, 56*287e80b3SSadaf Ebrahimi const char pass:[*]_event_); 57*287e80b3SSadaf Ebrahimi int *tracefs_event_disable*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, 58*287e80b3SSadaf Ebrahimi const char pass:[*]_event_); 59*287e80b3SSadaf Ebrahimi enum tracefs_enable_state *tracefs_event_is_enabled*(struct tracefs_instance pass:[*]_instance_, 60*287e80b3SSadaf Ebrahimi const char pass:[*]_system_, const char pass:[*]_event_); 61*287e80b3SSadaf Ebrahimi int *tracefs_iterate_raw_events*(struct tep_handle pass:[*]_tep_, struct tracefs_instance pass:[*]_instance_, cpu_set_t pass:[*]_cpus_, int _cpu_size_, int (pass:[*]_callback_)(struct tep_event pass:[*], struct tep_record pass:[*], int, void pass:[*]), void pass:[*]_callback_context_); 62*287e80b3SSadaf Ebrahimi void *tracefs_iterate_stop*(struct tracefs_instance pass:[*]_instance_); 63*287e80b3SSadaf Ebrahimi int *tracefs_follow_event*(struct tep_handle pass:[*]_tep_, struct tracefs_instance pass:[*]_instance_, 64*287e80b3SSadaf Ebrahimi const char pass:[*]_system_, const char pass:[*]_event_name_, 65*287e80b3SSadaf Ebrahimi int (pass:[*]_callback_)(struct tep_event pass:[*], 66*287e80b3SSadaf Ebrahimi struct tep_record pass:[*], 67*287e80b3SSadaf Ebrahimi int, void pass:[*]), 68*287e80b3SSadaf Ebrahimi void pass:[*]_callback_data_); 69*287e80b3SSadaf Ebrahimi int *tracefs_follow_missed_events*(struct tracefs_instance pass:[*]_instance_, 70*287e80b3SSadaf Ebrahimi int (pass:[*]_callback_)(struct tep_event pass:[*], 71*287e80b3SSadaf Ebrahimi struct tep_record pass:[*], 72*287e80b3SSadaf Ebrahimi int, void pass:[*]), 73*287e80b3SSadaf Ebrahimi void pass:[*]_callback_data_); 74*287e80b3SSadaf Ebrahimi struct tep_handle pass:[*]*tracefs_local_events*(const char pass:[*]_tracing_dir_); 75*287e80b3SSadaf Ebrahimi struct tep_handle pass:[*]*tracefs_local_events_system*(const char pass:[*]_tracing_dir_, const char pass:[*] const pass:[*]_sys_names_); 76*287e80b3SSadaf Ebrahimi int *tracefs_fill_local_events*(const char pass:[*]_tracing_dir_, struct tep_handle pass:[*]_tep_, int pass:[*]_parsing_failures_); 77*287e80b3SSadaf Ebrahimi int *tracefs_load_cmdlines*(const char pass:[*]_tracing_dir_, struct tep_handle pass:[*]_tep_); 78*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_event_get_file*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, const char pass:[*]_event_, 79*287e80b3SSadaf Ebrahimi const char pass:[*]_file_); 80*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_event_file_read*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, const char pass:[*]_event_, 81*287e80b3SSadaf Ebrahimi const char pass:[*]_file_, int pass:[*]_psize_); 82*287e80b3SSadaf Ebrahimi int *tracefs_event_file_write*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, const char pass:[*]_event_, 83*287e80b3SSadaf Ebrahimi const char pass:[*]_file_, const char pass:[*]_str_); 84*287e80b3SSadaf Ebrahimi int *tracefs_event_file_append*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, const char pass:[*]_event_, 85*287e80b3SSadaf Ebrahimi const char pass:[*]_file_, const char pass:[*]_str_); 86*287e80b3SSadaf Ebrahimi int *tracefs_event_file_clear*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, const char pass:[*]_event_, 87*287e80b3SSadaf Ebrahimi const char pass:[*]_file_); 88*287e80b3SSadaf Ebrahimi bool *tracefs_event_file_exists*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_system_, const char pass:[*]_event_, 89*287e80b3SSadaf Ebrahimi 90*287e80b3SSadaf EbrahimiEvent filters: 91*287e80b3SSadaf Ebrahimi int *tracefs_filter_string_append*(struct tep_event pass:[*]_event_, char pass:[**]_filter_, 92*287e80b3SSadaf Ebrahimi struct tracefs_filter _type_, const char pass:[*]_field_, 93*287e80b3SSadaf Ebrahimi enum tracefs_synth_compare _compare_, const char pass:[*]_val_); 94*287e80b3SSadaf Ebrahimi int *tracefs_filter_string_verify*(struct tep_event pass:[*]_event_, const char pass:[*]_filter_, char pass:[**]_err_); 95*287e80b3SSadaf Ebrahimi int *tracefs_event_filter_apply*(struct tracefs_instance pass:[*]_instance_, struct tep_event pass:[*]_event_, const char pass:[*]_filter_); 96*287e80b3SSadaf Ebrahimi int *tracefs_event_filter_clear*(struct tracefs_instance pass:[*]_instance_, struct tep_event pass:[*]_event_); 97*287e80b3SSadaf Ebrahimi 98*287e80b3SSadaf EbrahimiFunction filters: 99*287e80b3SSadaf Ebrahimi int *tracefs_function_filter*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_filter_, const char pass:[*]_module_, int _flags_); 100*287e80b3SSadaf Ebrahimi int *tracefs_function_notrace*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_filter_, const char pass:[*]_module_, int _flags_); 101*287e80b3SSadaf Ebrahimi int *tracefs_filter_functions*(const char pass:[*]_filter_, const char pass:[*]_module_, char pass:[*]pass:[*]pass:[*]_list_); 102*287e80b3SSadaf Ebrahimi 103*287e80b3SSadaf EbrahimiTrace helper functions: 104*287e80b3SSadaf Ebrahimi void *tracefs_list_free*(char pass:[*]pass:[*]_list_); 105*287e80b3SSadaf Ebrahimi char pass:[**]*tracefs_list_add*(char **_list_, const char *_string_); 106*287e80b3SSadaf Ebrahimi int *tracefs_list_size*(char pass:[**]_list_); 107*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_get_clock*(struct tracefs_instance pass:[*]_instance_); 108*287e80b3SSadaf Ebrahimi int *tracefs_trace_is_on*(struct tracefs_instance pass:[*]_instance_); 109*287e80b3SSadaf Ebrahimi int *tracefs_trace_on*(struct tracefs_instance pass:[*]_instance_); 110*287e80b3SSadaf Ebrahimi int *tracefs_trace_off*(struct tracefs_instance pass:[*]_instance_); 111*287e80b3SSadaf Ebrahimi int *tracefs_trace_on_get_fd*(struct tracefs_instance pass:[*]_instance_); 112*287e80b3SSadaf Ebrahimi int *tracefs_trace_on_fd*(int _fd_); 113*287e80b3SSadaf Ebrahimi int *tracefs_trace_off_fd*(int _fd_); 114*287e80b3SSadaf Ebrahimi 115*287e80b3SSadaf EbrahimiTrace stream: 116*287e80b3SSadaf Ebrahimi ssize_t *tracefs_trace_pipe_stream*(int _fd_, struct tracefs_instance pass:[*]_instance_, int _flags_); 117*287e80b3SSadaf Ebrahimi ssize_t *tracefs_trace_pipe_print*(struct tracefs_instance pass:[*]_instance_, int _flags_); 118*287e80b3SSadaf Ebrahimi void *tracefs_trace_pipe_stop*(struct tracefs_instance pass:[*]_instance_); 119*287e80b3SSadaf Ebrahimi 120*287e80b3SSadaf EbrahimiTrace options: 121*287e80b3SSadaf Ebrahimi const struct tracefs_options_mask pass:[*]*tracefs_options_get_supported*(struct tracefs_instance pass:[*]_instance_); 122*287e80b3SSadaf Ebrahimi bool *tracefs_option_is_supported*(struct tracefs_instance pass:[*]_instance_, enum tracefs_option_id _id_); 123*287e80b3SSadaf Ebrahimi const struct tracefs_options_mask pass:[*]*tracefs_options_get_enabled*(struct tracefs_instance pass:[*]_instance_); 124*287e80b3SSadaf Ebrahimi bool *tracefs_option_is_enabled*(struct tracefs_instance pass:[*]_instance_, enum tracefs_option_id _id_); 125*287e80b3SSadaf Ebrahimi bool *tracefs_option_mask_is_set*(const struct tracefs_options_mask *options, enum tracefs_option_id id); 126*287e80b3SSadaf Ebrahimi int *tracefs_option_enable*(struct tracefs_instance pass:[*]_instance_, enum tracefs_option_id _id_); 127*287e80b3SSadaf Ebrahimi int *tracefs_option_disable*(struct tracefs_instance pass:[*]_instance_, enum tracefs_option_id _id_); 128*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_option_name*(enum tracefs_option_id _id_); 129*287e80b3SSadaf Ebrahimi enum tracefs_option_id *tracefs_option_id*(const char pass:[*]_name_); 130*287e80b3SSadaf Ebrahimi 131*287e80b3SSadaf EbrahimiFtrace tracers: 132*287e80b3SSadaf Ebrahimi char pass:[*]pass:[*]*tracefs_tracers*(const char pass:[*]_tracing_dir_); 133*287e80b3SSadaf Ebrahimi bool *tracefs_tracer_available*(const char pass:[*]_tracing_dir_, const char pass:[*]_tracer_); 134*287e80b3SSadaf Ebrahimi int *tracefs_tracer_set*(struct tracefs_instance pass:[*]_instance_, enum tracefs_tracers _tracer_); 135*287e80b3SSadaf Ebrahimi int *tracefs_tracer_set*(struct tracefs_instance pass:[*]_instance_, enum tracefs_tracers _tracer_, const char pass:[*]_name_); 136*287e80b3SSadaf Ebrahimi int *tracefs_tracer_clear*(struct tracefs_instance pass:[*]_instance_); 137*287e80b3SSadaf Ebrahimi 138*287e80b3SSadaf EbrahimiWriting data in the trace buffer: 139*287e80b3SSadaf Ebrahimi int *tracefs_print_init*(struct tracefs_instance pass:[*]_instance_); 140*287e80b3SSadaf Ebrahimi int *tracefs_printf*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_fmt_, _..._); 141*287e80b3SSadaf Ebrahimi int *tracefs_vprintf*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_fmt_, va_list _ap_); 142*287e80b3SSadaf Ebrahimi void *tracefs_print_close*(struct tracefs_instance pass:[*]_instance_); 143*287e80b3SSadaf Ebrahimi int *tracefs_binary_init*(struct tracefs_instance pass:[*]_instance_); 144*287e80b3SSadaf Ebrahimi int *tracefs_binary_write*(struct tracefs_instance pass:[*]_instance_, void pass:[*]_data_, int _len_); 145*287e80b3SSadaf Ebrahimi void *tracefs_binary_close*(struct tracefs_instance pass:[*]_instance_); 146*287e80b3SSadaf Ebrahimi 147*287e80b3SSadaf EbrahimiControl library logs: 148*287e80b3SSadaf Ebrahimi int *tracefs_set_loglevel*(enum tep_loglevel _level_); 149*287e80b3SSadaf Ebrahimi 150*287e80b3SSadaf EbrahimiDynamic event generic APIs: 151*287e80b3SSadaf Ebrahimi struct *tracefs_dynevent*; 152*287e80b3SSadaf Ebrahimi enum *tracefs_dynevent_type*; 153*287e80b3SSadaf Ebrahimi int *tracefs_dynevent_create*(struct tracefs_dynevent pass:[*]_devent_); 154*287e80b3SSadaf Ebrahimi int *tracefs_dynevent_destroy*(struct tracefs_dynevent pass:[*]_devent_, bool _force_); 155*287e80b3SSadaf Ebrahimi int *tracefs_dynevent_destroy_all*(unsigned int _types_, bool _force_); 156*287e80b3SSadaf Ebrahimi void *tracefs_dynevent_free*(struct tracefs_dynevent pass:[*]_devent_); 157*287e80b3SSadaf Ebrahimi void *tracefs_dynevent_list_free*(struct tracefs_dynevent pass:[*]pass:[*]_events_); 158*287e80b3SSadaf Ebrahimi struct tracefs_dynevent pass:[*]*tracefs_dynevent_get*(enum tracefs_dynevent_type _type_, const char pass:[*]_system_, const char pass:[*]_event_); 159*287e80b3SSadaf Ebrahimi struct tracefs_dynevent pass:[*]pass:[*]*tracefs_dynevent_get_all*(unsigned int _types_, const char pass:[*]_system_); 160*287e80b3SSadaf Ebrahimi enum tracefs_dynevent_type *tracefs_dynevent_info*(struct tracefs_dynevent pass:[*]_dynevent_, char pass:[*]pass:[*]_system_, char pass:[*]pass:[*]_event_, char pass:[*]pass:[*]_prefix_, char pass:[*]pass:[*]_addr_, char pass:[*]pass:[*]_format_); 161*287e80b3SSadaf Ebrahimi struct tep_event pass:[*]*tracefs_dynevent_get_event*(struct tep_handle pass:[*]_tep_, struct tracefs_dynevent pass:[*]_dynevent_); 162*287e80b3SSadaf Ebrahimi 163*287e80b3SSadaf EbrahimiEven probes (eprobes): 164*287e80b3SSadaf Ebrahimi struct tracefs_dynevent pass:[*] *tracefs_eprobe_alloc*(const char pass:[*]_system_, const char pass:[*]_event_, const char pass:[*]_target_system_, const char pass:[*]_target_event_, const char pass:[*]_fetchargs_); 165*287e80b3SSadaf Ebrahimi 166*287e80b3SSadaf EbrahimiUprobes, Kprobes and Kretprobes: 167*287e80b3SSadaf Ebrahimi struct tracefs_dynevent pass:[*] *tracefs_kprobe_alloc*(const char pass:[*]_system_, const char pass:[*]_event_, const char pass:[*]_addr_, const char pass:[*]_format_); 168*287e80b3SSadaf Ebrahimi struct tracefs_dynevent pass:[*] *tracefs_kretprobe_alloc*(const char pass:[*]_system_, const char pass:[*]_event_, const char pass:[*]_addr_, const char pass:[*]_format_, unsigned int _max_); 169*287e80b3SSadaf Ebrahimi int *tracefs_kprobe_raw*(const char pass:[*]_system_, const char pass:[*]_event_, const char pass:[*]_addr_, const char pass:[*]_format_); 170*287e80b3SSadaf Ebrahimi int *tracefs_kretprobe_raw*(const char pass:[*]_system_, const char pass:[*]_event_, const char pass:[*]_addr_, const char pass:[*]_format_); 171*287e80b3SSadaf Ebrahimi *tracefs_uprobe_alloc*(const char pass:[*]_system_, const char pass:[*]_event_, 172*287e80b3SSadaf Ebrahimi const char pass:[*]_file_, unsigned long long _offset_, const char pass:[*]_fetchargs_) 173*287e80b3SSadaf Ebrahimi *tracefs_uretprobe_alloc*(const char pass:[*]_system_, const char pass:[*]_event_, 174*287e80b3SSadaf Ebrahimi const char pass:[*]_file_, unsigned long long _offset_, const char pass:[*]_fetchargs_); 175*287e80b3SSadaf Ebrahimi 176*287e80b3SSadaf EbrahimiSynthetic events: 177*287e80b3SSadaf Ebrahimi struct tracefs_synth pass:[*]*tracefs_sql*(struct tep_handle pass:[*]_tep_, const char pass:[*]_name_, 178*287e80b3SSadaf Ebrahimi const char pass:[*]_sql_buffer_, char pass:[**]_err_); 179*287e80b3SSadaf Ebrahimi struct tracefs_synth pass:[*]*tracefs_synth_alloc*(struct tep_handle pass:[*]_tep_, 180*287e80b3SSadaf Ebrahimi const char pass:[*]_name_, 181*287e80b3SSadaf Ebrahimi const char pass:[*]_start_system_, 182*287e80b3SSadaf Ebrahimi const char pass:[*]_start_event_, 183*287e80b3SSadaf Ebrahimi const char pass:[*]_end_system_, 184*287e80b3SSadaf Ebrahimi const char pass:[*]_end_event_, 185*287e80b3SSadaf Ebrahimi const char pass:[*]_start_match_field_, 186*287e80b3SSadaf Ebrahimi const char pass:[*]_end_match_field_, 187*287e80b3SSadaf Ebrahimi const char pass:[*]_match_name_); 188*287e80b3SSadaf Ebrahimi int *tracefs_synth_add_match_field*(struct tracefs_synth pass:[*]_synth_, 189*287e80b3SSadaf Ebrahimi const char pass:[*]_start_match_field_, 190*287e80b3SSadaf Ebrahimi const char pass:[*]_end_match_field_, 191*287e80b3SSadaf Ebrahimi const char pass:[*]_name_); 192*287e80b3SSadaf Ebrahimi int *tracefs_synth_add_compare_field*(struct tracefs_synth pass:[*]_synth_, 193*287e80b3SSadaf Ebrahimi const char pass:[*]_start_compare_field_, 194*287e80b3SSadaf Ebrahimi const char pass:[*]_end_compare_field_, 195*287e80b3SSadaf Ebrahimi enum tracefs_synth_calc _calc_, 196*287e80b3SSadaf Ebrahimi const char pass:[*]_name_); 197*287e80b3SSadaf Ebrahimi int *tracefs_synth_add_start_field*(struct tracefs_synth pass:[*]_synth_, 198*287e80b3SSadaf Ebrahimi const char pass:[*]_start_field_, 199*287e80b3SSadaf Ebrahimi const char pass:[*]_name_); 200*287e80b3SSadaf Ebrahimi int *tracefs_synth_add_end_field*(struct tracefs_synth pass:[*]_synth_, 201*287e80b3SSadaf Ebrahimi const char pass:[*]_end_field_, 202*287e80b3SSadaf Ebrahimi const char pass:[*]_name_); 203*287e80b3SSadaf Ebrahimi int *tracefs_synth_append_start_filter*(struct tracefs_synth pass:[*]_synth_, 204*287e80b3SSadaf Ebrahimi struct tracefs_filter _type_, 205*287e80b3SSadaf Ebrahimi const char pass:[*]_field_, 206*287e80b3SSadaf Ebrahimi enum tracefs_synth_compare _compare_, 207*287e80b3SSadaf Ebrahimi const char pass:[*]_val_); 208*287e80b3SSadaf Ebrahimi int *tracefs_synth_append_end_filter*(struct tracefs_synth pass:[*]_synth_, 209*287e80b3SSadaf Ebrahimi struct tracefs_filter _type_, 210*287e80b3SSadaf Ebrahimi const char pass:[*]_field_, 211*287e80b3SSadaf Ebrahimi enum tracefs_synth_compare _compare_, 212*287e80b3SSadaf Ebrahimi const char pass:[*]_val_); 213*287e80b3SSadaf Ebrahimi void *tracefs_synth_free*(struct tracefs_synth pass:[*]_synth_); 214*287e80b3SSadaf Ebrahimi int *tracefs_synth_create*(struct tracefs_synth pass:[*]_synth_); 215*287e80b3SSadaf Ebrahimi int *tracefs_synth_destroy*(struct tracefs_synth pass:[*]_synth_); 216*287e80b3SSadaf Ebrahimi int *tracefs_synth_echo_cmd*(struct trace_seq pass:[*]_seq_, struct tracefs_synth pass:[*]_synth_); 217*287e80b3SSadaf Ebrahimi bool *tracefs_synth_complete*(struct tracefs_synth pass:[*]_synth_); 218*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]*tracefs_synth_get_start_hist*(struct tracefs_synth pass:[*]_synth_); 219*287e80b3SSadaf Ebrahimi int *tracefs_synth_trace*(struct tracefs_synth pass:[*]_synth_, 220*287e80b3SSadaf Ebrahimi enum tracefs_synth_handler _type_, const char pass:[*]_var_); 221*287e80b3SSadaf Ebrahimi int *tracefs_synth_snapshot*(struct tracefs_synth pass:[*]_synth_, 222*287e80b3SSadaf Ebrahimi enum tracefs_synth_handler _type_, const char pass:[*]_var_); 223*287e80b3SSadaf Ebrahimi int *tracefs_synth_save*(struct tracefs_synth pass:[*]_synth_, 224*287e80b3SSadaf Ebrahimi enum tracefs_synth_handler _type_, const char pass:[*]_var_, 225*287e80b3SSadaf Ebrahimi char pass:[**]_save_fields_); 226*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_synth_get_name*(struct tracefs_synth pass:[*]_synth_); 227*287e80b3SSadaf Ebrahimi int *tracefs_synth_raw_fmt*(struct trace_seq pass:[*]_seq_, struct tracefs_synth pass:[*]_synth_); 228*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_synth_show_event*(struct tracefs_synth pass:[*]_synth_); 229*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_synth_show_start_hist*(struct tracefs_synth pass:[*]_synth_); 230*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_synth_show_end_hist*(struct tracefs_synth pass:[*]_synth_); 231*287e80b3SSadaf Ebrahimi struct tep_event pass:[*]*tracefs_synth_get_event*(struct tep_handle pass:[*]_tep_, struct tracefs_synth pass:[*]_synth_); 232*287e80b3SSadaf Ebrahimi 233*287e80b3SSadaf EbrahimiFtrace errors reporting: 234*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_error_last*(struct tracefs_instance pass:[*]_instance_); 235*287e80b3SSadaf Ebrahimi char pass:[*]*tracefs_error_all*(struct tracefs_instance pass:[*]_instance_); 236*287e80b3SSadaf Ebrahimi int *tracefs_error_clear*(struct tracefs_instance pass:[*]_instance_); 237*287e80b3SSadaf Ebrahimi 238*287e80b3SSadaf EbrahimiHistograms: 239*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]*tracefs_hist_alloc*(struct tracefs_tep pass:[*] _tep_, 240*287e80b3SSadaf Ebrahimi const char pass:[*]_system_, const char pass:[*]_event_, 241*287e80b3SSadaf Ebrahimi const char pass:[*]_key_, enum tracefs_hist_key_type _type_); 242*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]*tracefs_hist_alloc_2d*(struct tracefs_tep pass:[*] _tep_, 243*287e80b3SSadaf Ebrahimi const char pass:[*]_system_, const char pass:[*]_event_, 244*287e80b3SSadaf Ebrahimi const char pass:[*]_key1_, enum tracefs_hist_key_type _type1_, 245*287e80b3SSadaf Ebrahimi const char pass:[*]_key2_, enum tracefs_hist_key_type _type2_)); 246*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]*tracefs_hist_alloc_nd*(struct tracefs_tep pass:[*] _tep_, 247*287e80b3SSadaf Ebrahimi const char pass:[*]_system_, const char pass:[*]_event_, 248*287e80b3SSadaf Ebrahimi struct tracefs_hist_axis pass:[*]_axes_); 249*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]*tracefs_hist_alloc_nd_cnt*(struct tep_handle pass:[*]_tep_, 250*287e80b3SSadaf Ebrahimi const char pass:[*]_system_, const char pass:[*]_event_name_, 251*287e80b3SSadaf Ebrahimi struct tracefs_hist_axis_cnt pass:[*]_axes_); 252*287e80b3SSadaf Ebrahimi void *tracefs_hist_free*(struct tracefs_hist pass:[*]_hist_); 253*287e80b3SSadaf Ebrahimi int *tracefs_hist_add_key*(struct tracefs_hist pass:[*]_hist_, const char pass:[*]_key_, 254*287e80b3SSadaf Ebrahimi enum tracefs_hist_key_type _type_); 255*287e80b3SSadaf Ebrahimi int *tracefs_hist_add_key_cnt*(struct tracefs_hist pass:[*]_hist_, const char pass:[*]_key_, 256*287e80b3SSadaf Ebrahimi enum tracefs_hist_key_type _type_, int _cnt_); 257*287e80b3SSadaf Ebrahimi int *tracefs_hist_add_value*(struct tracefs_hist pass:[*]_hist_, const char pass:[*]_value_); 258*287e80b3SSadaf Ebrahimi int *tracefs_hist_add_sort_key*(struct tracefs_hist pass:[*]_hist_, 259*287e80b3SSadaf Ebrahimi const char pass:[*]_sort_key_); 260*287e80b3SSadaf Ebrahimi int *tracefs_hist_set_sort_key*(struct tracefs_hist pass:[*]_hist_, 261*287e80b3SSadaf Ebrahimi const char pass:[*]_sort_key_, _..._); 262*287e80b3SSadaf Ebrahimi int *tracefs_hist_sort_key_direction*(struct tracefs_hist pass:[*]_hist_, 263*287e80b3SSadaf Ebrahimi const char pass:[*]_sort_key_, 264*287e80b3SSadaf Ebrahimi enum tracefs_hist_sort_direction _dir_); 265*287e80b3SSadaf Ebrahimi int *tracefs_hist_add_name*(struct tracefs_hist pass:[*]_hist_, const char pass:[*]_name_); 266*287e80b3SSadaf Ebrahimi int *tracefs_hist_append_filter*(struct tracefs_hist pass:[*]_hist_, 267*287e80b3SSadaf Ebrahimi enum tracefs_filter _type_, 268*287e80b3SSadaf Ebrahimi const char pass:[*]_field_, 269*287e80b3SSadaf Ebrahimi enum tracefs_compare _compare_, 270*287e80b3SSadaf Ebrahimi const char pass:[*]_val_); 271*287e80b3SSadaf Ebrahimi int *tracefs_hist_echo_cmd*(struct trace_seq pass:[*]_s_, struct tracefs_instance pass:[*]_instance_, 272*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]_hist_, 273*287e80b3SSadaf Ebrahimi enum tracefs_hist_command _command_); 274*287e80b3SSadaf Ebrahimi int *tracefs_hist_command*(struct tracefs_instance pass:[*]_instance_, 275*287e80b3SSadaf Ebrahimi struct tracefs_hist pass:[*]_hist_, 276*287e80b3SSadaf Ebrahimi enum tracefs_hist_command _command_); 277*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_hist_get_name*(struct tracefs_hist pass:[*]_hist_); 278*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_hist_get_event*(struct tracefs_hist pass:[*]_hist_); 279*287e80b3SSadaf Ebrahimi const char pass:[*]*tracefs_hist_get_system*(struct tracefs_hist pass:[*]_hist_); 280*287e80b3SSadaf Ebrahimi int *tracefs_hist_start*(struct tracefs_instance pass:[*]_instance_, struct tracefs_hist pass:[*]_hist_); 281*287e80b3SSadaf Ebrahimi int *tracefs_hist_destroy*(struct tracefs_instance pass:[*]_instance_, struct tracefs_hist pass:[*]_hist_); 282*287e80b3SSadaf Ebrahimi int *tracefs_hist_pause*(struct tracefs_instance pass:[*]_instance_, struct tracefs_hist pass:[*]_hist_); 283*287e80b3SSadaf Ebrahimi int *tracefs_hist_continue*(struct tracefs_instance pass:[*]_instance_, struct tracefs_hist pass:[*]_hist_); 284*287e80b3SSadaf Ebrahimi int *tracefs_hist_reset*(struct tracefs_instance pass:[*]_instance_, struct tracefs_hist pass:[*]_hist_); 285*287e80b3SSadaf Ebrahimi 286*287e80b3SSadaf EbrahimiRecording of trace_pipe_raw files: 287*287e80b3SSadaf Ebrahimi struct tracefs_cpu pass:[*]*tracefs_cpu_open*(struct tracefs_instance pass:[*]_instance_, 288*287e80b3SSadaf Ebrahimi int _cpu_, bool _nonblock_); 289*287e80b3SSadaf Ebrahimi struct tracefs_cpu pass:[*]*tracefs_cpu_alloc_fd*(int _fd_, int _subbuf_size_, bool _nonblock_); 290*287e80b3SSadaf Ebrahimi void *tracefs_cpu_close*(struct tracefs_cpu pass:[*]_tcpu_); 291*287e80b3SSadaf Ebrahimi void *tracefs_cpu_free_fd*(struct tracefs_cpu pass:[*]_tcpu_); 292*287e80b3SSadaf Ebrahimi int *tracefs_cpu_read_size*(struct tracefs_cpu pass:[*]_tcpu_); 293*287e80b3SSadaf Ebrahimi int *tracefs_cpu_read*(struct tracefs_cpu pass:[*]_tcpu_, void pass:[*]_buffer_, bool _nonblock_); 294*287e80b3SSadaf Ebrahimi int *tracefs_cpu_buffered_read*(struct tracefs_cpu pass:[*]_tcpu_, void pass:[*]_buffer_, bool _nonblock_); 295*287e80b3SSadaf Ebrahimi int *tracefs_cpu_write*(struct tracefs_cpu pass:[*]_tcpu_, int _wfd_, bool _nonblock_); 296*287e80b3SSadaf Ebrahimi int *tracefs_cpu_stop*(struct tracefs_cpu pass:[*]_tcpu_); 297*287e80b3SSadaf Ebrahimi int *tracefs_cpu_flush*(struct tracefs_cpu pass:[*]_tcpu_, void pass:[*]_buffer_); 298*287e80b3SSadaf Ebrahimi int *tracefs_cpu_flush_write*(struct tracefs_cpu pass:[*]_tcpu_, int _wfd_); 299*287e80b3SSadaf Ebrahimi int *tracefs_cpu_pipe*(struct tracefs_cpu pass:[*]_tcpu_, int _wfd_, bool _nonblock_); 300*287e80b3SSadaf Ebrahimi 301*287e80b3SSadaf Ebrahimi-- 302*287e80b3SSadaf Ebrahimi 303*287e80b3SSadaf EbrahimiDESCRIPTION 304*287e80b3SSadaf Ebrahimi----------- 305*287e80b3SSadaf EbrahimiThe libtracefs(3) library provides APIs to access kernel trace file system. 306*287e80b3SSadaf Ebrahimi 307*287e80b3SSadaf EbrahimiFILES 308*287e80b3SSadaf Ebrahimi----- 309*287e80b3SSadaf Ebrahimi[verse] 310*287e80b3SSadaf Ebrahimi-- 311*287e80b3SSadaf Ebrahimi*tracefs.h* 312*287e80b3SSadaf Ebrahimi Header file to include in order to have access to the library APIs. 313*287e80b3SSadaf Ebrahimi*-ltracefs* 314*287e80b3SSadaf Ebrahimi Linker switch to add when building a program that uses the library. 315*287e80b3SSadaf Ebrahimi-- 316*287e80b3SSadaf Ebrahimi 317*287e80b3SSadaf EbrahimiSEE ALSO 318*287e80b3SSadaf Ebrahimi-------- 319*287e80b3SSadaf Ebrahimi*libtraceevent*(3), 320*287e80b3SSadaf Ebrahimi*trace-cmd*(1) 321*287e80b3SSadaf Ebrahimi 322*287e80b3SSadaf EbrahimiAUTHOR 323*287e80b3SSadaf Ebrahimi------ 324*287e80b3SSadaf Ebrahimi[verse] 325*287e80b3SSadaf Ebrahimi-- 326*287e80b3SSadaf Ebrahimi*Steven Rostedt* <[email protected]> 327*287e80b3SSadaf Ebrahimi*Tzvetomir Stoyanov* <[email protected]> 328*287e80b3SSadaf Ebrahimi-- 329*287e80b3SSadaf EbrahimiREPORTING BUGS 330*287e80b3SSadaf Ebrahimi-------------- 331*287e80b3SSadaf EbrahimiReport bugs to <[email protected]> 332*287e80b3SSadaf Ebrahimi 333*287e80b3SSadaf EbrahimiLICENSE 334*287e80b3SSadaf Ebrahimi------- 335*287e80b3SSadaf Ebrahimilibtracefs is Free Software licensed under the GNU LGPL 2.1 336*287e80b3SSadaf Ebrahimi 337*287e80b3SSadaf EbrahimiRESOURCES 338*287e80b3SSadaf Ebrahimi--------- 339*287e80b3SSadaf Ebrahimihttps://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/ 340*287e80b3SSadaf Ebrahimi 341*287e80b3SSadaf EbrahimiCOPYING 342*287e80b3SSadaf Ebrahimi------- 343*287e80b3SSadaf EbrahimiCopyright \(C) 2020 VMware, Inc. Free use of this software is granted under 344*287e80b3SSadaf Ebrahimithe terms of the GNU Public License (GPL). 345