Added man pages describing these functions: tracefs_marker_init() tracefs_marker_print() tracefs_marker_vprint() tracefs_marker_write() tracefs_marker_close() Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@xxxxxxxxx> --- Documentation/libtracefs-marker.txt | 127 ++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 Documentation/libtracefs-marker.txt diff --git a/Documentation/libtracefs-marker.txt b/Documentation/libtracefs-marker.txt new file mode 100644 index 0000000..e2673d9 --- /dev/null +++ b/Documentation/libtracefs-marker.txt @@ -0,0 +1,127 @@ +libtracefs(3) +============= + +NAME +---- +tracefs_marker_init, tracefs_marker_close, tracefs_marker_print, tracefs_marker_vprint, tracefs_marker_write - +Open, close and write data in the frace marker file. + +SYNOPSIS +-------- +[verse] +-- +*#include <tracefs.h>* + +int *tracefs_marker_init*(struct tracefs_instance pass:[*]_instance_); +int *tracefs_marker_print*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_fmt_, _..._); +int *tracefs_marker_vprint*(struct tracefs_instance pass:[*]_instance_, const char pass:[*]_fmt_, va_list _ap_); +int *tracefs_marker_write*(struct tracefs_instance pass:[*]_instance_, void pass:[*]_data_, int _len_); +void *tracefs_marker_close*(struct tracefs_instance pass:[*]_instance_); + +-- + +DESCRIPTION +----------- +Set of functions to work with ftrace maker. See Documentation/trace/ftrace.rst from the Linux +kernel tree for more information about ftrace marker functionality. All these APIs have _instance_ +as a first argument. If NULL is passed as _instance_, the top trace instance is used. + +The _tracefs_marker_init()_ function initializes the library for working with ftrace marker of +the selected _instance_. It is not mandatory to call this API before working with the marker, any +of the marker APIs will call it automatically, if the library is not yet initialized to work with +the marker form given instance. But calling _tracefs_marker_init()_ in advance will speed up +the other marker APIs. + +The _tracefs_marker_print()_ function writes a formatted string in the trace marker of the selected +_instance_. The _fmt_ argument is a string in printf format, followed by variable arguments _..._. + +The _tracefs_marker_vprint()_ function writes a formatted string in the trace marker of the selected +_instance_. The _fmt_ argument is a string in printf format, followed by list _ap_ of arguments. + +The _tracefs_marker_write()_ function writes a binary data in the trace marker of the selected +_instance_. The _data_ points to the data with length _len_, that is going to be written in +the trace marker. + +The _tracefs_marker_close()_ function closes the ftrace marker of the selected instance. + +RETURN VALUE +------------ +The _tracefs_marker_init()_, _tracefs_marker_print()_, _tracefs_marker_vprint()_ and +_tracefs_marker_write()_ functions return 0 if the operation is successful, or -1 in case of an error. + +EXAMPLE +------- +[source,c] +-- +#include <tracefs.h> + +if (tracefs_marker_init(NULL) < 0) { + /* Failed to initialize the library with the ftrace marker of the top trace instance */ +} + +void foo_print(char *format, ...) +{ + va_list ap; + va_start(ap, format); + if (tracefs_marker_vprint(NULL, format, ap) < 0) { + /* Failed to print in the trace marker */ + } + va_end(ap); +} + +void foo_print_string(char *message) +{ + if (tracefs_marker_print(NULL, "Message from user space: %s", message) < 0) { + /* Failed to print in the trace marker */ + } +} + +unsigned int data = 0xdeadbeef; + + if (tracefs_marker_write(NULL, &data, sizeof(data)) < 0) { + /* Failed to write in the trace marker */ + } + + +tracefs_marker_close(); +-- +FILES +----- +[verse] +-- +*tracefs.h* + Header file to include in order to have access to the library APIs. +*-ltracefs* + Linker switch to add when building a program that uses the library. +-- + +SEE ALSO +-------- +_libtracefs(3)_, +_libtraceevent(3)_, +_trace-cmd(1)_, +Documentation/trace/ftrace.rst from the Linux kernel tree + +AUTHOR +------ +[verse] +-- +*Steven Rostedt* <rostedt@xxxxxxxxxxx> +*Tzvetomir Stoyanov* <tz.stoyanov@xxxxxxxxx> +-- +REPORTING BUGS +-------------- +Report bugs to <linux-trace-devel@xxxxxxxxxxxxxxx> + +LICENSE +------- +libtracefs is Free Software licensed under the GNU LGPL 2.1 + +RESOURCES +--------- +https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/ + +COPYING +------- +Copyright \(C) 2021 VMware, Inc. Free use of this software is granted under +the terms of the GNU Public License (GPL). -- 2.30.2