event: Add a command
authorSimon Glass <sjg@chromium.org>
Fri, 4 Mar 2022 15:43:06 +0000 (08:43 -0700)
committerTom Rini <trini@konsulko.com>
Thu, 10 Mar 2022 13:28:36 +0000 (08:28 -0500)
Add a command to show the available events.

Signed-off-by: Simon Glass <sjg@chromium.org>
MAINTAINERS
cmd/Kconfig
cmd/Makefile
cmd/event.c [new file with mode: 0644]
include/event.h

index 2786ada..6e5c022 100644 (file)
@@ -812,6 +812,7 @@ F:  scripts/env2string.awk
 EVENTS
 M:     Simon Glass <sjg@chromium.org>
 S:     Maintained
+F:     cmd/event.c
 F:     common/event.c
 F:     include/event.h
 F:     test/common/event.c
index d10deed..1ed63fa 100644 (file)
@@ -2367,6 +2367,14 @@ config CMD_DIAG
          available tests and running either all the tests, or specific tests
          identified by name.
 
+config CMD_EVENT
+       bool "event - Show information about events"
+       default y if EVENT_DEBUG
+       help
+         This enables the 'event' command which provides information about
+         events and event-handler routines. This can help to device event
+         hadling.
+
 config CMD_IRQ
        bool "irq - Show information about interrupts"
        depends on !ARM && !MIPS && !RISCV && !SH
index 166c652..0d2b2ee 100644 (file)
@@ -53,6 +53,7 @@ obj-$(CONFIG_CMD_DIAG) += diag.o
 endif
 obj-$(CONFIG_CMD_ADTIMG) += adtimg.o
 obj-$(CONFIG_CMD_ABOOTIMG) += abootimg.o
+obj-$(CONFIG_CMD_EVENT) += event.o
 obj-$(CONFIG_CMD_EXTENSION) += extension_board.o
 obj-$(CONFIG_CMD_ECHO) += echo.o
 obj-$(CONFIG_ENV_IS_IN_EEPROM) += eeprom.o
diff --git a/cmd/event.c b/cmd/event.c
new file mode 100644 (file)
index 0000000..9cac202
--- /dev/null
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Command-line access to events
+ *
+ * Copyright 2021 Google LLC
+ * Written by Simon Glass <sjg@chromium.org>
+ */
+
+#include <common.h>
+#include <command.h>
+#include <event.h>
+
+static int do_event_list(struct cmd_tbl *cmdtp, int flag, int argc,
+                        char *const argv[])
+{
+       event_show_spy_list();
+
+       return 0;
+}
+
+#ifdef CONFIG_SYS_LONGHELP
+static char event_help_text[] =
+       "event list   - list event spies";
+#endif
+
+U_BOOT_CMD_WITH_SUBCMDS(event, "Events", event_help_text,
+       U_BOOT_SUBCMD_MKENT(list, 1, 1, do_event_list));
index 78a4237..62e72a7 100644 (file)
@@ -141,6 +141,9 @@ static inline const char *event_spy_id(struct evspy_info *spy)
 int event_register(const char *id, enum event_t type, event_handler_t func,
                   void *ctx);
 
+/** event_show_spy_list( - Show a list of event spies */
+void event_show_spy_list(void);
+
 #if CONFIG_IS_ENABLED(EVENT)
 /**
  * event_notify() - notify spies about an event