mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 11:19:37 +00:00
![Divya Indi](/assets/img/avatar_default.png)
Adding 2 new functions - 1) struct trace_array *trace_array_get_by_name(const char *name); Return pointer to a trace array with given name. If it does not exist, create and return pointer to the new trace array. 2) int trace_array_set_clr_event(struct trace_array *tr, const char *system ,const char *event, bool enable); Enable/Disable events to this trace array. Additionally, - To handle reference counters, export trace_array_put() - Due to introduction of the above 2 new functions, we no longer need to export - ftrace_set_clr_event & trace_array_create APIs. Link: http://lkml.kernel.org/r/1574276919-11119-2-git-send-email-divya.indi@oracle.com Signed-off-by: Divya Indi <divya.indi@oracle.com> Reviewed-by: Aruna Ramakrishna <aruna.ramakrishna@oracle.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_TRACE_H
|
|
#define _LINUX_TRACE_H
|
|
|
|
#ifdef CONFIG_TRACING
|
|
/*
|
|
* The trace export - an export of Ftrace output. The trace_export
|
|
* can process traces and export them to a registered destination as
|
|
* an addition to the current only output of Ftrace - i.e. ring buffer.
|
|
*
|
|
* If you want traces to be sent to some other place rather than ring
|
|
* buffer only, just need to register a new trace_export and implement
|
|
* its own .write() function for writing traces to the storage.
|
|
*
|
|
* next - pointer to the next trace_export
|
|
* write - copy traces which have been delt with ->commit() to
|
|
* the destination
|
|
*/
|
|
struct trace_export {
|
|
struct trace_export __rcu *next;
|
|
void (*write)(struct trace_export *, const void *, unsigned int);
|
|
};
|
|
|
|
int register_ftrace_export(struct trace_export *export);
|
|
int unregister_ftrace_export(struct trace_export *export);
|
|
|
|
struct trace_array;
|
|
|
|
void trace_printk_init_buffers(void);
|
|
int trace_array_printk(struct trace_array *tr, unsigned long ip,
|
|
const char *fmt, ...);
|
|
void trace_array_put(struct trace_array *tr);
|
|
struct trace_array *trace_array_get_by_name(const char *name);
|
|
int trace_array_destroy(struct trace_array *tr);
|
|
#endif /* CONFIG_TRACING */
|
|
|
|
#endif /* _LINUX_TRACE_H */
|