tep_list_events(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLE | FILES | SEE ALSO | AUTHOR | REPORTING BUGS | LICENSE | RESOURCES | NOTES | COLOPHON

LIBTRACEEVENT(3)          libtraceevent Manual          LIBTRACEEVENT(3)

NAME         top

       tep_list_events, tep_list_events_copy - Get list of events,
       sorted by given criteria.

SYNOPSIS         top

       #include <event-parse.h>

       enum tep_event_sort_type {
               TEP_EVENT_SORT_ID,
               TEP_EVENT_SORT_NAME,
               TEP_EVENT_SORT_SYSTEM,
       };

       struct tep_event **tep_list_events(struct tep_handle *tep, enum tep_event_sort_type sort_type);
       struct tep_event **tep_list_events_copy(struct tep_handle *tep, enum tep_event_sort_type sort_type);

DESCRIPTION         top

       The tep_list_events() function returns an array of pointers to
       the events, sorted by the sort_type criteria. The last element of
       the array is NULL. The returned memory must not be freed, it is
       managed by the library. The function is not thread safe. The tep
       argument is trace event parser context. The sort_type argument is
       the required sort criteria:

                   TEP_EVENT_SORT_ID     - sort by the event ID.
                   TEP_EVENT_SORT_NAME   - sort by the event (name, system, id) triplet.
                   TEP_EVENT_SORT_SYSTEM - sort by the event (system, name, id) triplet.

       The tep_list_events_copy() is a thread safe version of
       tep_list_events(). It has the same behavior, but the returned
       array is allocated internally and must be freed by the caller.
       Note that the content of the array must not be freed (see the
       EXAMPLE below).

RETURN VALUE         top

       The tep_list_events() function returns an array of pointers to
       events. In case of an error, NULL is returned. The returned array
       must not be freed, it is managed by the library.

       The tep_list_events_copy() function returns an array of pointers
       to events. In case of an error, NULL is returned. The returned
       array must be freed by the caller.

EXAMPLE         top

           #include <event-parse.h>
           ...
           struct tep_handle *tep = tep_alloc();
           ...
           int i;
           struct tep_event_format **events;

           i=0;
           events = tep_list_events(tep, TEP_EVENT_SORT_ID);
           if (events == NULL) {
                   /* Failed to get the events, sorted by ID */
           } else {
                   while(events[i]) {
                           /* walk through the list of the events, sorted by ID */
                           i++;
                   }
           }

           i=0;
           events = tep_list_events_copy(tep, TEP_EVENT_SORT_NAME);
           if (events == NULL) {
                   /* Failed to get the events, sorted by name */
           } else {
                   while(events[i]) {
                           /* walk through the list of the events, sorted by name */
                           i++;
                   }
                   free(events);
           }

           ...

FILES         top

           event-parse.h
                   Header file to include in order to have access to the library APIs.
           -ltraceevent
                   Linker switch to add when building a program that uses the library.

SEE ALSO         top

       libtraceevent(3), trace-cmd(1)

AUTHOR         top

           Steven Rostedt <rostedt@goodmis.org[1]>, author of libtraceevent.
           Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>, author of this man page.

REPORTING BUGS         top

       Report bugs to <linux-trace-devel@vger.kernel.org[3]>

LICENSE         top

       libtraceevent is Free Software licensed under the GNU LGPL 2.1

RESOURCES         top

       https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/ 

NOTES         top

        1. rostedt@goodmis.org
           mailto:rostedt@goodmis.org

        2. tz.stoyanov@gmail.com
           mailto:tz.stoyanov@gmail.com

        3. linux-trace-devel@vger.kernel.org
           mailto:linux-trace-devel@vger.kernel.org

COLOPHON         top

       This page is part of the libtraceevent (Linux kernel trace event
       library) project.  Information about the project can be found at
       ⟨https://www.trace-cmd.org/⟩.  If you have a bug report for this
       manual page, see ⟨https://www.trace-cmd.org/⟩.  This page was
       obtained from the project's upstream Git repository
       ⟨https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git⟩
       on 2023-12-22.  (At that time, the date of the most recent commit
       that was found in the repository was 2023-06-07.)  If you
       discover any rendering problems in this HTML version of the page,
       or you believe there is a better or more up-to-date source for
       the page, or you have corrections or improvements to the
       information in this COLOPHON (which is not part of the original
       manual page), send a mail to man-pages@man7.org

libtraceevent 1.7.3            09/24/2023               LIBTRACEEVENT(3)