diff options
| author | Sven Schnelle <[email protected]> | 2023-08-16 17:49:26 +0200 |
|---|---|---|
| committer | Steven Rostedt (Google) <[email protected]> | 2023-08-16 16:33:27 -0400 |
| commit | ddeea494a16f32522bce16ee65f191d05d4b8282 (patch) | |
| tree | 2de190925a4e1eb0b4cac6bc6d9f7746f74f8fca /include/linux | |
| parent | 5450be6befc63670f2c05aa6773a8e437b39a3fe (diff) | |
tracing/synthetic: Use union instead of casts
The current code uses a lot of casts to access the fields member in struct
synth_trace_events with different sizes. This makes the code hard to
read, and had already introduced an endianness bug. Use a union and struct
instead.
Link: https://lkml.kernel.org/r/[email protected]
Cc: [email protected]
Cc: Masami Hiramatsu <[email protected]>
Fixes: 00cf3d672a9dd ("tracing: Allow synthetic events to pass around stacktraces")
Signed-off-by: Sven Schnelle <[email protected]>
Signed-off-by: Steven Rostedt (Google) <[email protected]>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/trace_events.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index 3930e676436c..1e8bbdb8da90 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -59,6 +59,17 @@ int trace_raw_output_prep(struct trace_iterator *iter, extern __printf(2, 3) void trace_event_printf(struct trace_iterator *iter, const char *fmt, ...); +/* Used to find the offset and length of dynamic fields in trace events */ +struct trace_dynamic_info { +#ifdef CONFIG_CPU_BIG_ENDIAN + u16 offset; + u16 len; +#else + u16 len; + u16 offset; +#endif +}; + /* * The trace entry - the most basic unit of tracing. This is what * is printed in the end as a single line in the trace output, such as: |