@@ -387,7 +387,7 @@ void engine_ovsdb_node_add_index(struct engine_node *, const char *name,
struct ovsdb_idl_index *);
/* Macro to define an engine node. */
-#define ENGINE_NODE_DEF(NAME, NAME_STR) \
+#define ENGINE_NODE_DEF(NAME, NAME_STR, CLEAR_TRACKED_DATA, IS_VALID) \
struct engine_node en_##NAME = { \
.name = NAME_STR, \
.data = NULL, \
@@ -395,21 +395,20 @@ void engine_ovsdb_node_add_index(struct engine_node *, const char *name,
.init = en_##NAME##_init, \
.run = en_##NAME##_run, \
.cleanup = en_##NAME##_cleanup, \
- .is_valid = NULL, \
- .clear_tracked_data = NULL, \
+ .is_valid = IS_VALID, \
+ .clear_tracked_data = CLEAR_TRACKED_DATA, \
};
-#define ENGINE_NODE_WITH_CLEAR_TRACK_DATA_IS_VALID(NAME, NAME_STR) \
- ENGINE_NODE(NAME, NAME_STR) \
- en_##NAME.clear_tracked_data = en_##NAME##_clear_tracked_data; \
- en_##NAME.is_valid = en_##NAME##_is_valid;
-
#define ENGINE_NODE(NAME, NAME_STR) \
- ENGINE_NODE_DEF(NAME, NAME_STR)
+ ENGINE_NODE_DEF(NAME, NAME_STR, NULL, NULL)
#define ENGINE_NODE_WITH_CLEAR_TRACK_DATA(NAME, NAME_STR) \
- ENGINE_NODE(NAME, NAME_STR) \
- en_##NAME.clear_tracked_data = en_##NAME##_clear_tracked_data;
+ ENGINE_NODE_DEF(NAME, NAME_STR, en_##NAME##_clear_tracked_data, NULL)
+
+#define ENGINE_NODE_WITH_CLEAR_TRACK_DATA_IS_VALID(NAME, NAME_STR) \
+ ENGINE_NODE_DEF(NAME, NAME_STR, \
+ en_##NAME##_clear_tracked_data, \
+ en_##NAME##_is_valid)
/* Macro to define member functions of an engine node which represents
* a table of OVSDB */
Refactor so that ENGINE_NODE_WITH_CLEAR_TRACK_DATA_IS_VALID can be used outside of functions. Signed-off-by: Han Zhou <hzhou@ovn.org> --- lib/inc-proc-eng.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-)