[MERGED] libosmocore[master]: add value strings for enum osmo_fsm_term_cause and use for l...

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Fri Dec 16 12:38:53 UTC 2016


Neels Hofmeyr has submitted this change and it was merged.

Change subject: add value strings for enum osmo_fsm_term_cause and use for logging
......................................................................


add value strings for enum osmo_fsm_term_cause and use for logging

Change-Id: Iaf63d3cadb0d46bf454e3314ebb439240cafd834
---
M include/osmocom/core/fsm.h
M src/fsm.c
2 files changed, 20 insertions(+), 1 deletion(-)

Approvals:
  Jenkins Builder: Verified
  Holger Freyther: Looks good to me, approved



diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h
index 77072ef..5a67961 100644
--- a/include/osmocom/core/fsm.h
+++ b/include/osmocom/core/fsm.h
@@ -30,6 +30,13 @@
 	OSMO_FSM_TERM_TIMEOUT,
 };
 
+extern const struct value_string osmo_fsm_term_cause_names[];
+static inline const char *osmo_fsm_term_cause_name(enum osmo_fsm_term_cause cause)
+{
+	return get_value_string(osmo_fsm_term_cause_names, cause);
+}
+
+
 /*! \brief description of a rule in the FSM */
 struct osmo_fsm_state {
 	/*! \brief bit-mask of permitted input events for this state */
diff --git a/src/fsm.c b/src/fsm.c
index dc57e5e..d251cfd 100644
--- a/src/fsm.c
+++ b/src/fsm.c
@@ -431,7 +431,8 @@
 	struct osmo_fsm_inst *parent = fi->proc.parent;
 	uint32_t parent_term_event = fi->proc.parent_term_event;
 
-	LOGPFSMSRC(fi, file, line, "Terminating (cause = %u)\n", cause);
+	LOGPFSMSRC(fi, file, line, "Terminating (cause = %s)\n",
+		   osmo_fsm_term_cause_name(cause));
 
 	/* iterate over all children */
 	llist_for_each_entry_safe(child, child2, &fi->proc.children, proc.child) {
@@ -456,4 +457,15 @@
 					file, line);
 }
 
+#define ENUM_VAL_TO_VALUE_STRING(X) { X, #X }
+
+const struct value_string osmo_fsm_term_cause_names[] = {
+	ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_PARENT),
+	ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_REQUEST),
+	ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_REGULAR),
+	ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_ERROR),
+	ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_TIMEOUT),
+	{ 0, NULL }
+};
+
 /*! @} */

-- 
To view, visit https://gerrit.osmocom.org/1433
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iaf63d3cadb0d46bf454e3314ebb439240cafd834
Gerrit-PatchSet: 2
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list