[PATCH] libosmocore[master]: utils.h: add OSMO_STRINGIFY and OSMO_VALUE_STRING macros

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 15:38:31 UTC 2016


Hello Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/1440

to look at the new patch set (#2).

utils.h: add OSMO_STRINGIFY and OSMO_VALUE_STRING macros

OSMO_STRINGIFY particularly allows putting port numbers from a #define into VTY
doc strings, like:

  #define FOO_PORT 2342
  DEFUN(...,
        "Foo UDP port (default: " OSMO_STRINGIFY(FOO_PORT) ")\n")

OSMO_VALUE_STRING creates value_string items with the string being exactly the
enum value's name. Replaces a similar macro def in fsm.c

Change-Id: I857af45ae602bb9a647ba26cf8b0d1b23403b54c
---
M include/osmocom/core/utils.h
M src/fsm.c
2 files changed, 9 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/1440/2

diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h
index 3c6fc98..41bbc27 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 d251cfd..ed57fde 100644
--- a/src/fsm.c
+++ b/src/fsm.c
@@ -457,14 +457,12 @@
 					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_ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_PARENT),
+	OSMO_ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_REQUEST),
+	OSMO_ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_REGULAR),
+	OSMO_ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_ERROR),
+	OSMO_ENUM_VAL_TO_VALUE_STRING(OSMO_FSM_TERM_TIMEOUT),
 	{ 0, NULL }
 };
 

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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I857af45ae602bb9a647ba26cf8b0d1b23403b54c
Gerrit-PatchSet: 2
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.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