1*58e6ee5fSAndroid Build Coastguard Workerlibtracecmd(3) 2*58e6ee5fSAndroid Build Coastguard Worker============= 3*58e6ee5fSAndroid Build Coastguard Worker 4*58e6ee5fSAndroid Build Coastguard WorkerNAME 5*58e6ee5fSAndroid Build Coastguard Worker---- 6*58e6ee5fSAndroid Build Coastguard Workertracecmd_buffer_instances, tracecmd_buffer_instance_name, tracecmd_buffer_instance_handle 7*58e6ee5fSAndroid Build Coastguard Worker- Read tracing instances from a trace file. 8*58e6ee5fSAndroid Build Coastguard Worker 9*58e6ee5fSAndroid Build Coastguard WorkerSYNOPSIS 10*58e6ee5fSAndroid Build Coastguard Worker-------- 11*58e6ee5fSAndroid Build Coastguard Worker[verse] 12*58e6ee5fSAndroid Build Coastguard Worker-- 13*58e6ee5fSAndroid Build Coastguard Worker*#include <trace-cmd.h>* 14*58e6ee5fSAndroid Build Coastguard Worker 15*58e6ee5fSAndroid Build Coastguard Workerint *tracecmd_buffer_instances*(struct tracecmd_input pass:[*]_handle_); 16*58e6ee5fSAndroid Build Coastguard Workerconst char pass:[*]*tracecmd_buffer_instance_name*(struct tracecmd_input pass:[*]_handle_, int _indx_); 17*58e6ee5fSAndroid Build Coastguard Workerstruct tracecmd_input pass:[*]*tracecmd_buffer_instance_handle*(struct tracecmd_input pass:[*]_handle_, int _indx_); 18*58e6ee5fSAndroid Build Coastguard Worker-- 19*58e6ee5fSAndroid Build Coastguard Worker 20*58e6ee5fSAndroid Build Coastguard WorkerDESCRIPTION 21*58e6ee5fSAndroid Build Coastguard Worker----------- 22*58e6ee5fSAndroid Build Coastguard WorkerThis set of APIs can be used to get information and read tracing data 23*58e6ee5fSAndroid Build Coastguard Workerfrom tracing instances stored in a trace file. 24*58e6ee5fSAndroid Build Coastguard Worker 25*58e6ee5fSAndroid Build Coastguard WorkerThe _tracecmd_buffer_instances()_ function gets the number of tracing 26*58e6ee5fSAndroid Build Coastguard Workerinstances recorded in a trace file. The top instance is not counted. 27*58e6ee5fSAndroid Build Coastguard WorkerThe _handle_ is a tracecmd_input handler returned by 28*58e6ee5fSAndroid Build Coastguard Worker_tracecmd_open_head()_. 29*58e6ee5fSAndroid Build Coastguard Worker 30*58e6ee5fSAndroid Build Coastguard WorkerThe _tracecmd_buffer_instance_name()_ function gets the name of the 31*58e6ee5fSAndroid Build Coastguard Workertracing instance with given index _indx_, recorded in a trace file. 32*58e6ee5fSAndroid Build Coastguard WorkerThe _indx_ is a number in the interval [0 .. count-1], where count 33*58e6ee5fSAndroid Build Coastguard Workeris the number returned by _tracecmd_buffer_instances()_. The _handle_ 34*58e6ee5fSAndroid Build Coastguard Workeris a tracecmd_input handler returned by _tracecmd_open_head()_. 35*58e6ee5fSAndroid Build Coastguard Worker 36*58e6ee5fSAndroid Build Coastguard WorkerThe _tracecmd_buffer_instance_handle()_ allocates and initializes a 37*58e6ee5fSAndroid Build Coastguard Workertracecmd_input handle, associated with trace instance with index 38*58e6ee5fSAndroid Build Coastguard Worker_indx_ from a trace file. The _handle_ is a tracecmd_input handler 39*58e6ee5fSAndroid Build Coastguard Workerreturned by _tracecmd_open_head()_. The _indx_ is a number in the 40*58e6ee5fSAndroid Build Coastguard Workerinterval [0 .. count-1], where count is the number returned by 41*58e6ee5fSAndroid Build Coastguard Worker_tracecmd_buffer_instances()_. 42*58e6ee5fSAndroid Build Coastguard Worker 43*58e6ee5fSAndroid Build Coastguard WorkerRETURN VALUE 44*58e6ee5fSAndroid Build Coastguard Worker------------ 45*58e6ee5fSAndroid Build Coastguard WorkerThe _tracecmd_buffer_instances()_ function returns the number of tracing 46*58e6ee5fSAndroid Build Coastguard Workerinstances recorded in a trace file. 47*58e6ee5fSAndroid Build Coastguard Worker 48*58e6ee5fSAndroid Build Coastguard WorkerThe _tracecmd_buffer_instance_name()_ function returns a string, the name 49*58e6ee5fSAndroid Build Coastguard Workerof a tracing instance, or NULL in case of an error The string must *not* 50*58e6ee5fSAndroid Build Coastguard Workerbe freed. 51*58e6ee5fSAndroid Build Coastguard Worker 52*58e6ee5fSAndroid Build Coastguard WorkerThe _tracecmd_buffer_instance_handle()_ function returns a pointer to 53*58e6ee5fSAndroid Build Coastguard Workernewly allocated tracecmd_input handler or NULL in case if an error. The 54*58e6ee5fSAndroid Build Coastguard Workerreturned handler must be closed by _tracecmd_close()(3)_ 55*58e6ee5fSAndroid Build Coastguard Worker 56*58e6ee5fSAndroid Build Coastguard WorkerEXAMPLE 57*58e6ee5fSAndroid Build Coastguard Worker------- 58*58e6ee5fSAndroid Build Coastguard Worker[source,c] 59*58e6ee5fSAndroid Build Coastguard Worker-- 60*58e6ee5fSAndroid Build Coastguard Worker#include <trace-cmd.h> 61*58e6ee5fSAndroid Build Coastguard Worker... 62*58e6ee5fSAndroid Build Coastguard Workerstruct tracecmd_input *handle = tracecmd_open_head("trace.dat"); 63*58e6ee5fSAndroid Build Coastguard Worker if (!handle) { 64*58e6ee5fSAndroid Build Coastguard Worker /* Failed to open trace.dat file */ 65*58e6ee5fSAndroid Build Coastguard Worker } 66*58e6ee5fSAndroid Build Coastguard Worker... 67*58e6ee5fSAndroid Build Coastguard Workerint num = tracecmd_buffer_instances(handle); 68*58e6ee5fSAndroid Build Coastguard Worker 69*58e6ee5fSAndroid Build Coastguard Worker while(num) { 70*58e6ee5fSAndroid Build Coastguard Worker struct tracecmd_input *h; 71*58e6ee5fSAndroid Build Coastguard Worker char *name; 72*58e6ee5fSAndroid Build Coastguard Worker 73*58e6ee5fSAndroid Build Coastguard Worker name = tracecmd_buffer_instance_name(handle, num); 74*58e6ee5fSAndroid Build Coastguard Worker if (!name) { 75*58e6ee5fSAndroid Build Coastguard Worker /* Failed to get name of instance num */ 76*58e6ee5fSAndroid Build Coastguard Worker } 77*58e6ee5fSAndroid Build Coastguard Worker h = tracecmd_buffer_instance_handle(handle, num); 78*58e6ee5fSAndroid Build Coastguard Worker if (!h) { 79*58e6ee5fSAndroid Build Coastguard Worker /* Failed to initialize handler for instance num */ 80*58e6ee5fSAndroid Build Coastguard Worker } 81*58e6ee5fSAndroid Build Coastguard Worker 82*58e6ee5fSAndroid Build Coastguard Worker ... 83*58e6ee5fSAndroid Build Coastguard Worker tracecmd_close(h); 84*58e6ee5fSAndroid Build Coastguard Worker num--; 85*58e6ee5fSAndroid Build Coastguard Worker } 86*58e6ee5fSAndroid Build Coastguard Worker... 87*58e6ee5fSAndroid Build Coastguard Worker tracecmd_close(handle); 88*58e6ee5fSAndroid Build Coastguard Worker 89*58e6ee5fSAndroid Build Coastguard Worker-- 90*58e6ee5fSAndroid Build Coastguard WorkerFILES 91*58e6ee5fSAndroid Build Coastguard Worker----- 92*58e6ee5fSAndroid Build Coastguard Worker[verse] 93*58e6ee5fSAndroid Build Coastguard Worker-- 94*58e6ee5fSAndroid Build Coastguard Worker*trace-cmd.h* 95*58e6ee5fSAndroid Build Coastguard Worker Header file to include in order to have access to the library APIs. 96*58e6ee5fSAndroid Build Coastguard Worker*-ltracecmd* 97*58e6ee5fSAndroid Build Coastguard Worker Linker switch to add when building a program that uses the library. 98*58e6ee5fSAndroid Build Coastguard Worker-- 99*58e6ee5fSAndroid Build Coastguard Worker 100*58e6ee5fSAndroid Build Coastguard WorkerSEE ALSO 101*58e6ee5fSAndroid Build Coastguard Worker-------- 102*58e6ee5fSAndroid Build Coastguard Worker_libtracefs(3)_, 103*58e6ee5fSAndroid Build Coastguard Worker_libtraceevent(3)_, 104*58e6ee5fSAndroid Build Coastguard Worker_trace-cmd(1)_ 105*58e6ee5fSAndroid Build Coastguard Worker_trace-cmd.dat(5)_ 106*58e6ee5fSAndroid Build Coastguard Worker 107*58e6ee5fSAndroid Build Coastguard WorkerAUTHOR 108*58e6ee5fSAndroid Build Coastguard Worker------ 109*58e6ee5fSAndroid Build Coastguard Worker[verse] 110*58e6ee5fSAndroid Build Coastguard Worker-- 111*58e6ee5fSAndroid Build Coastguard Worker*Steven Rostedt* <[email protected]> 112*58e6ee5fSAndroid Build Coastguard Worker*Tzvetomir Stoyanov* <[email protected]> 113*58e6ee5fSAndroid Build Coastguard Worker-- 114*58e6ee5fSAndroid Build Coastguard WorkerREPORTING BUGS 115*58e6ee5fSAndroid Build Coastguard Worker-------------- 116*58e6ee5fSAndroid Build Coastguard WorkerReport bugs to <[email protected]> 117*58e6ee5fSAndroid Build Coastguard Worker 118*58e6ee5fSAndroid Build Coastguard WorkerLICENSE 119*58e6ee5fSAndroid Build Coastguard Worker------- 120*58e6ee5fSAndroid Build Coastguard Workerlibtracecmd is Free Software licensed under the GNU LGPL 2.1 121*58e6ee5fSAndroid Build Coastguard Worker 122*58e6ee5fSAndroid Build Coastguard WorkerRESOURCES 123*58e6ee5fSAndroid Build Coastguard Worker--------- 124*58e6ee5fSAndroid Build Coastguard Workerhttps://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/ 125*58e6ee5fSAndroid Build Coastguard Worker 126*58e6ee5fSAndroid Build Coastguard WorkerCOPYING 127*58e6ee5fSAndroid Build Coastguard Worker------- 128*58e6ee5fSAndroid Build Coastguard WorkerCopyright \(C) 2020 VMware, Inc. Free use of this software is granted under 129*58e6ee5fSAndroid Build Coastguard Workerthe terms of the GNU Public License (GPL). 130