From patchwork Mon Nov 19 12:54:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tzvetomir Stoyanov X-Patchwork-Id: 10759781 Return-Path: Received: from mail-eopbgr790085.outbound.protection.outlook.com ([40.107.79.85]:11680 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728886AbeKSXSU (ORCPT ); Mon, 19 Nov 2018 18:18:20 -0500 From: Tzvetomir Stoyanov To: "rostedt@goodmis.org" CC: "linux-trace-devel@vger.kernel.org" Subject: [PATCH 24/34] tools/lib/traceevent: Man pages for tep_set_function_resolver() and tep_reset_function_resolver() Date: Mon, 19 Nov 2018 12:54:35 +0000 Message-ID: <20181119125357.19449-25-tstoyanov@vmware.com> References: <20181119125357.19449-1-tstoyanov@vmware.com> In-Reply-To: <20181119125357.19449-1-tstoyanov@vmware.com> Content-Language: en-US MIME-Version: 1.0 Sender: linux-trace-devel-owner@vger.kernel.org List-ID: Content-Length: 3497 Create man pages for tep_set_function_resolver() and tep_reset_function_resolver() as part of the libtraceevent APIs. Signed-off-by: Tzvetomir Stoyanov --- .../libtraceevent-func_resolve.txt | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 tools/lib/traceevent/Documentation/libtraceevent-func_resolve.txt diff --git a/tools/lib/traceevent/Documentation/libtraceevent-func_resolve.txt b/tools/lib/traceevent/Documentation/libtraceevent-func_resolve.txt new file mode 100644 index 000000000000..4965cc6c79dc --- /dev/null +++ b/tools/lib/traceevent/Documentation/libtraceevent-func_resolve.txt @@ -0,0 +1,96 @@ +libtraceevent(3) +================ + +NAME +---- +tep_set_function_resolver,tep_reset_function_resolver - Set / reset an alternative function resolver + +SYNOPSIS +-------- +[verse] +-- +*#include * + +typedef char pass:[*](*tep_func_resolver_t*)(void pass:[*]_priv_, unsigned long long pass:[*]_addrp_, char pass:[**]_modp_); + +int *tep_set_function_resolver*(struct tep_handle pass:[*]_tep_, tep_func_resolver_t pass:[*]_func_, void pass:[*]_priv_); +void *tep_reset_function_resolver*(struct tep_handle pass:[*]_tep_); +-- + +DESCRIPTION +----------- +Some tools may have already a way to resolve the kernel functions. These APIs +allow them to keep using it instead of duplicating all the entries inside. + +The _tep_set_function_resolver()_ function registers _func_ as an alternative +kernel functions resolver. The _tep_ argument is trace event parser context. +The _priv_ argument is a custom context of the _func_ function. + +The _tep_reset_function_resolver()_ function resets the kernel functions +resolver to the default function. The _tep_ argument is trace event parser +context. + +The _tep_func_resolver_t_ type is the prototype of the alternative kernel +functions resolver. This function receives a pointer to its custom context +(set with the _tep_set_function_resolver()_ call ) and the address of a kernel +function, which has to be resolved. In case of success, it should return +the name of the function and its module (if any) in _modp_. + +RETURN VALUE +------------ +The _tep_set_function_resolver()_ function returns 0 in case of success, or -1 +in case of an error. + +EXAMPLE +------- +[source,c] +-- +#include +... +struct tep_handle *tep = tep_alloc(); +... +char *my_resolve_kernel_addr(void *context, unsigned long long *addrp, char **modp) +{ + return NULL; +} +... + if (tep_set_function_resolver(tep, my_resolve_kernel_addr, NULL) != 0) { + /* failed to register my_resolve_kernel_addr */ + } +... + tep_reset_function_resolver(tep); +... +-- + +FILES +----- +[verse] +-- +*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 +-------- +_libtraceevent(3)_, _trace-cmd(1)_ + +AUTHOR +------ +[verse] +-- +*Steven Rostedt* , author of *libtraceevent*. +*Tzvetomir Stoyanov* , author of this man page. +-- +REPORTING BUGS +-------------- +Report bugs to + +LICENSE +------- +libtraceevent is Free Software licensed under the GNU LGPL 2.1 + +RESOURCES +--------- +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git