^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_alloc, tep_free,tep_ref, tep_unref,tep_get_ref - Create, destroy, manage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) references of trace event parser context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) SYNOPSIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) *#include <event-parse.h>*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct tep_handle pass:[*]*tep_alloc*(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) void *tep_free*(struct tep_handle pass:[*]_tep_);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) void *tep_ref*(struct tep_handle pass:[*]_tep_);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) void *tep_unref*(struct tep_handle pass:[*]_tep_);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) int *tep_get_ref*(struct tep_handle pass:[*]_tep_);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) These are the main functions to create and destroy tep_handle - the main
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) structure, representing the trace event parser context. This context is used as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) the input parameter of most library APIs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) The _tep_alloc()_ function allocates and initializes the tep context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) The _tep_free()_ function will decrement the reference of the _tep_ handler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) When there is no more references, then it will free the handler, as well
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) as clean up all its resources that it had used. The argument _tep_ is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) the pointer to the trace event parser context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) The _tep_ref()_ function adds a reference to the _tep_ handler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) The _tep_unref()_ function removes a reference from the _tep_ handler. When
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) the last reference is removed, the _tep_ is destroyed, and all resources that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) it had used are cleaned up.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) The _tep_ref_get()_ functions gets the current references of the _tep_ handler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) RETURN VALUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) _tep_alloc()_ returns a pointer to a newly created tep_handle structure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) NULL is returned in case there is not enough free memory to allocate it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) _tep_ref_get()_ returns the current references of _tep_.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) If _tep_ is NULL, 0 is returned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) EXAMPLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) [source,c]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #include <event-parse.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) struct tep_handle *tep = tep_alloc();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) int ref = tep_get_ref(tep);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) tep_ref(tep);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) if ( (ref+1) != tep_get_ref(tep)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) /* Something wrong happened, the counter is not incremented by 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) tep_unref(tep);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) tep_free(tep);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) FILES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) *event-parse.h*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) Header file to include in order to have access to the library APIs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) *-ltraceevent*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) Linker switch to add when building a program that uses the library.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) _libtraceevent(3)_, _trace-cmd(1)_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) AUTHOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) ------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) *Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) *Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) REPORTING BUGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) --------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) Report bugs to <linux-trace-devel@vger.kernel.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) LICENSE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) libtraceevent is Free Software licensed under the GNU LGPL 2.1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) RESOURCES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) ---------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git