[PATCH 10/12] event: Add a command

Simon Glass sjg at chromium.org
Tue Dec 28 09:28:52 CET 2021


Add a command to show the available events.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 MAINTAINERS     |  1 +
 cmd/Kconfig     |  8 ++++++++
 cmd/Makefile    |  1 +
 cmd/event.c     | 27 +++++++++++++++++++++++++++
 include/event.h |  3 +++
 5 files changed, 40 insertions(+)
 create mode 100644 cmd/event.c

diff --git a/MAINTAINERS b/MAINTAINERS
index bc8d53cf387..117a7d6c985 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -789,6 +789,7 @@ F:	scripts/env2string.awk
 EVENTS
 M:	Simon Glass <sjg at chromium.org>
 S:	Maintained
+F:	cmd/event.c
 F:	common/event.c
 F:	include/event.h
 F:	test/common/event.c
diff --git a/cmd/Kconfig b/cmd/Kconfig
index fd8f0227c89..5d2ef66fe4d 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -2320,6 +2320,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
diff --git a/cmd/Makefile b/cmd/Makefile
index 891819ae0f6..fde81266646 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -54,6 +54,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
index 00000000000..9cac2023530
--- /dev/null
+++ b/cmd/event.c
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Command-line access to events
+ *
+ * Copyright 2021 Google LLC
+ * Written by Simon Glass <sjg at 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));
diff --git a/include/event.h b/include/event.h
index f2d3639c82a..17280335d8c 100644
--- a/include/event.h
+++ b/include/event.h
@@ -113,6 +113,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
-- 
2.34.1.448.ga2b2bfdf31-goog



More information about the U-Boot mailing list