aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/core/utils.h4
-rw-r--r--src/fsm.c12
2 files changed, 9 insertions, 7 deletions
diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h
index 3c6fc98e..41bbc279 100644
--- a/include/osmocom/core/utils.h
+++ b/include/osmocom/core/utils.h
@@ -15,6 +15,10 @@
#define OSMO_MAX(a, b) ((a) >= (b) ? (a) : (b))
/*! \brief Return the minimum of two specified values */
#define OSMO_MIN(a, b) ((a) >= (b) ? (b) : (a))
+/*! \brief Stringify the contents of a macro, e.g. a port number */
+#define OSMO_STRINGIFY(x) #x
+/*! \brief Make a value_string entry from an enum value name */
+#define OSMO_VALUE_STRING(x) { x, OSMO_STRINGIFY(x) }
#include <stdint.h>
diff --git a/src/fsm.c b/src/fsm.c
index 16699fab..842c7665 100644
--- a/src/fsm.c
+++ b/src/fsm.c
@@ -476,14 +476,12 @@ void _osmo_fsm_inst_term(struct osmo_fsm_inst *fi,
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),
+ OSMO_VALUE_STRING(OSMO_FSM_TERM_PARENT),
+ OSMO_VALUE_STRING(OSMO_FSM_TERM_REQUEST),
+ OSMO_VALUE_STRING(OSMO_FSM_TERM_REGULAR),
+ OSMO_VALUE_STRING(OSMO_FSM_TERM_ERROR),
+ OSMO_VALUE_STRING(OSMO_FSM_TERM_TIMEOUT),
{ 0, NULL }
};