1bb730b58SSteven Rostedt (VMware) // SPDX-License-Identifier: GPL-2.0
2f0868d1eSSteven Rostedt #ifndef __TRACE_EVENTS_H
3f0868d1eSSteven Rostedt #define __TRACE_EVENTS_H
4f0868d1eSSteven Rostedt
59504504cSSteven Rostedt #include <linux/trace_seq.h>
6f0868d1eSSteven Rostedt #include "trace.h"
7f0868d1eSSteven Rostedt
85ef841f6SSteven Rostedt extern enum print_line_t
909ae7234SSteven Rostedt (Red Hat) trace_print_bputs_msg_only(struct trace_iterator *iter);
1009ae7234SSteven Rostedt (Red Hat) extern enum print_line_t
115ef841f6SSteven Rostedt trace_print_bprintk_msg_only(struct trace_iterator *iter);
125ef841f6SSteven Rostedt extern enum print_line_t
135ef841f6SSteven Rostedt trace_print_printk_msg_only(struct trace_iterator *iter);
145ef841f6SSteven Rostedt
15769b0441SFrederic Weisbecker extern int
16f0868d1eSSteven Rostedt seq_print_ip_sym(struct trace_seq *s, unsigned long ip,
17f0868d1eSSteven Rostedt unsigned long sym_flags);
18f0868d1eSSteven Rostedt
19773c1670SSteven Rostedt (VMware) extern void trace_seq_print_sym(struct trace_seq *s, unsigned long address, bool offset);
20f285901bSEduard - Gabriel Munteanu extern int trace_print_context(struct trace_iterator *iter);
21f285901bSEduard - Gabriel Munteanu extern int trace_print_lat_context(struct trace_iterator *iter);
2280a76994SSteven Rostedt (Google) extern enum print_line_t print_event_fields(struct trace_iterator *iter,
2380a76994SSteven Rostedt (Google) struct trace_event *event);
24c4a8e8beSFrederic Weisbecker
254f535968SLai Jiangshan extern void trace_event_read_lock(void);
264f535968SLai Jiangshan extern void trace_event_read_unlock(void);
27f285901bSEduard - Gabriel Munteanu extern struct trace_event *ftrace_find_event(int type);
28f0868d1eSSteven Rostedt
29f285901bSEduard - Gabriel Munteanu extern enum print_line_t trace_nop_print(struct trace_iterator *iter,
30a9a57763SSteven Rostedt int flags, struct trace_event *event);
31f81c972dSSteven Rostedt extern int
32f81c972dSSteven Rostedt trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry);
33f633cef0SSteven Rostedt
34110bf2b7SSteven Rostedt /* used by module unregistering */
359023c930SSteven Rostedt (Red Hat) extern int __unregister_trace_event(struct trace_event *event);
3652f6ad6dSzhangwei(Jovi) extern struct rw_semaphore trace_event_sem;
37110bf2b7SSteven Rostedt
3819a7fe20SSteven Rostedt (Red Hat) #define SEQ_PUT_FIELD(s, x) \
3919a7fe20SSteven Rostedt (Red Hat) trace_seq_putmem(s, &(x), sizeof(x))
40f633cef0SSteven Rostedt
4119a7fe20SSteven Rostedt (Red Hat) #define SEQ_PUT_HEX_FIELD(s, x) \
4219a7fe20SSteven Rostedt (Red Hat) trace_seq_putmem_hex(s, &(x), sizeof(x))
43f633cef0SSteven Rostedt
44*533c20b0SSven Schnelle #ifdef CONFIG_FUNCTION_TRACE_ARGS
45*533c20b0SSven Schnelle void print_function_args(struct trace_seq *s, unsigned long *args,
46*533c20b0SSven Schnelle unsigned long func);
47*533c20b0SSven Schnelle #else
print_function_args(struct trace_seq * s,unsigned long * args,unsigned long func)48*533c20b0SSven Schnelle static inline void print_function_args(struct trace_seq *s, unsigned long *args,
49*533c20b0SSven Schnelle unsigned long func) {
50*533c20b0SSven Schnelle trace_seq_puts(s, "()");
51*533c20b0SSven Schnelle }
52*533c20b0SSven Schnelle #endif
53f0868d1eSSteven Rostedt #endif
54f0868d1eSSteven Rostedt
55