^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) libtraceevent(3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) NAME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) tep_event_common_fields, tep_event_fields - Get a list of fields for an event.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) SYNOPSIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) *#include <event-parse.h>*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) struct tep_format_field pass:[*]pass:[*]*tep_event_common_fields*(struct tep_event pass:[*]_event_);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct tep_format_field pass:[*]pass:[*]*tep_event_fields*(struct tep_event pass:[*]_event_);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) The _tep_event_common_fields()_ function returns an array of pointers to common
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) fields for the _event_. The array is allocated in the function and must be freed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) by free(). The last element of the array is NULL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) The _tep_event_fields()_ function returns an array of pointers to event specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) fields for the _event_. The array is allocated in the function and must be freed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) by free(). The last element of the array is NULL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) RETURN VALUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) Both _tep_event_common_fields()_ and _tep_event_fields()_ functions return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) an array of pointers to tep_format_field structures in case of success, or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) NULL in case of an error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) EXAMPLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) [source,c]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #include <event-parse.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) struct tep_handle *tep = tep_alloc();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) int i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) struct tep_format_field **fields;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) struct tep_event *event = tep_find_event_by_name(tep, "kvm", "kvm_exit");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) if (event != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) fields = tep_event_common_fields(event);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) if (fields != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) i = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) while (fields[i]) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) walk through the list of the common fields
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) of the kvm_exit event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) i++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) free(fields);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) fields = tep_event_fields(event);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) if (fields != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) i = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) while (fields[i]) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) walk through the list of the event specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) fields of the kvm_exit event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) i++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) free(fields);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) FILES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) *event-parse.h*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) Header file to include in order to have access to the library APIs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) *-ltraceevent*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) Linker switch to add when building a program that uses the library.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) _libtraceevent(3)_, _trace-cmd(1)_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) AUTHOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) ------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) *Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) *Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) REPORTING BUGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) --------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) Report bugs to <linux-trace-devel@vger.kernel.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) LICENSE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) libtraceevent is Free Software licensed under the GNU LGPL 2.1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) RESOURCES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) ---------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git