* [PATCH 1/2] tracefs: Use new BUILD_BUG_ON() and ARRAY_SIZE() macros for options_map intergity
2021-02-02 19:54 [PATCH 0/2] libtracefs: Minor formating updates to options code Steven Rostedt
@ 2021-02-02 19:54 ` Steven Rostedt
2021-02-02 19:55 ` [PATCH 2/2] libtracefs: Have the options_map elements be each on their own line Steven Rostedt
1 sibling, 0 replies; 3+ messages in thread
From: Steven Rostedt @ 2021-02-02 19:54 UTC (permalink / raw)
To: linux-trace-devel
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Instead of having the options_map use TRACEFS_OPTIONS_MAX as its index, have
the array extend by the elements, and use the new macros BUILD_BUG_ON() and
ARRAY_SIZE() to make sure that the array always is the same size as the
TRACEFS_OPTIONS_MAX.
No functional changes.
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
include/tracefs-local.h | 6 ++++++
src/tracefs-tools.c | 5 ++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/include/tracefs-local.h b/include/tracefs-local.h
index 3a7ec32a8853..187870e7c491 100644
--- a/include/tracefs-local.h
+++ b/include/tracefs-local.h
@@ -8,6 +8,12 @@
#define __hidden __attribute__((visibility ("hidden")))
+#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
+
+/* Will cause a division by zero warning if cond is true */
+#define BUILD_BUG_ON(cond) \
+ do { if (!(1/!(cond))) { } } while (0)
+
/* Can be overridden */
void warning(const char *fmt, ...);
diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c
index 6e7fce53cef1..7f69cde93115 100644
--- a/src/tracefs-tools.c
+++ b/src/tracefs-tools.c
@@ -19,7 +19,7 @@
#define TRACE_CTRL "tracing_on"
-static const char * const options_map[TRACEFS_OPTION_MAX] = {
+static const char * const options_map[] = {
"unknown", "annotate", "bin", "blk_cgname", "blk_cgroup", "blk_classic",
"block", "context-info", "disable_on_free", "display-graph", "event-fork",
"funcgraph-abstime", "funcgraph-cpu", "funcgraph-duration", "funcgraph-irqs",
@@ -132,6 +132,9 @@ int tracefs_trace_off_fd(int fd)
*/
const char *tracefs_option_name(enum tracefs_option_id id)
{
+ /* Make sure options map contains all the options */
+ BUILD_BUG_ON(ARRAY_SIZE(options_map) != TRACEFS_OPTION_MAX);
+
if (id < TRACEFS_OPTION_MAX)
return options_map[id];
--
2.29.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] libtracefs: Have the options_map elements be each on their own line
2021-02-02 19:54 [PATCH 0/2] libtracefs: Minor formating updates to options code Steven Rostedt
2021-02-02 19:54 ` [PATCH 1/2] tracefs: Use new BUILD_BUG_ON() and ARRAY_SIZE() macros for options_map intergity Steven Rostedt
@ 2021-02-02 19:55 ` Steven Rostedt
1 sibling, 0 replies; 3+ messages in thread
From: Steven Rostedt @ 2021-02-02 19:55 UTC (permalink / raw)
To: linux-trace-devel
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
In order to verify the order of the option names in the options_map array,
have each name on its own line. This is much easier to see the mapping when
compared to the enums in tracefs_options_id that represent them.
No function changes.
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
src/tracefs-tools.c | 51 +++++++++++++++++++++++++++++++++++++--------
1 file changed, 42 insertions(+), 9 deletions(-)
diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c
index 7f69cde93115..e2dfc7b8acff 100644
--- a/src/tracefs-tools.c
+++ b/src/tracefs-tools.c
@@ -20,15 +20,48 @@
#define TRACE_CTRL "tracing_on"
static const char * const options_map[] = {
- "unknown", "annotate", "bin", "blk_cgname", "blk_cgroup", "blk_classic",
- "block", "context-info", "disable_on_free", "display-graph", "event-fork",
- "funcgraph-abstime", "funcgraph-cpu", "funcgraph-duration", "funcgraph-irqs",
- "funcgraph-overhead", "funcgraph-overrun", "funcgraph-proc", "funcgraph-tail",
- "func_stack_trace", "function-fork", "function-trace", "graph-time", "hex",
- "irq-info", "latency-format", "markers", "overwrite", "pause-on-trace",
- "printk-msg-only", "print-parent", "raw", "record-cmd", "record-tgid",
- "sleep-time", "stacktrace", "sym-addr", "sym-offset", "sym-userobj",
- "trace_printk", "userstacktrace", "verbose" };
+ "unknown",
+ "annotate",
+ "bin",
+ "blk_cgname",
+ "blk_cgroup",
+ "blk_classic",
+ "block",
+ "context-info",
+ "disable_on_free",
+ "display-graph",
+ "event-fork",
+ "funcgraph-abstime",
+ "funcgraph-cpu",
+ "funcgraph-duration",
+ "funcgraph-irqs",
+ "funcgraph-overhead",
+ "funcgraph-overrun",
+ "funcgraph-proc",
+ "funcgraph-tail",
+ "func_stack_trace",
+ "function-fork",
+ "function-trace",
+ "graph-time",
+ "hex",
+ "irq-info",
+ "latency-format",
+ "markers",
+ "overwrite",
+ "pause-on-trace",
+ "printk-msg-only",
+ "print-parent",
+ "raw",
+ "record-cmd",
+ "record-tgid",
+ "sleep-time",
+ "stacktrace",
+ "sym-addr",
+ "sym-offset",
+ "sym-userobj",
+ "trace_printk",
+ "userstacktrace",
+ "verbose" };
static int trace_on_off(int fd, bool on)
{
--
2.29.2
^ permalink raw reply related [flat|nested] 3+ messages in thread