vppapigen: support counters only .api 14/38814/1
authorOle Troan <otroan@employees.org>
Thu, 11 May 2023 20:02:30 +0000 (22:02 +0200)
committerOle Troan <otroan@employees.org>
Thu, 11 May 2023 20:04:46 +0000 (22:04 +0200)
In some cases an .api file may contain only counter definitions.
If so do not generate the setup_msg functions.

Type: improvement
Change-Id: Idf89a7a5ab135428e9577726bc356acfd7c30113
Signed-off-by: Ole Troan <otroan@employees.org>
src/tools/vppapigen/vppapigen_c.py

index 26a348f..41317f8 100755 (executable)
@@ -1524,14 +1524,15 @@ def generate_c_boilerplate(services, defines, counters, file_crc, module, stream
 """
 
     write(hdr.format(module=module))
-    write("static u16\n")
-    write("setup_message_id_table (void) {\n")
-    write("   api_main_t *am = my_api_main;\n")
-    write("   vl_msg_api_msg_config_t c;\n")
-    write(
-        '   u16 msg_id_base = vl_msg_api_get_msg_ids ("{}_{crc:08x}", '
-        "VL_MSG_{m}_LAST);\n".format(module, crc=file_crc, m=module.upper())
-    )
+    if len(defines) > 0:
+        write("static u16\n")
+        write("setup_message_id_table (void) {\n")
+        write("   api_main_t *am = my_api_main;\n")
+        write("   vl_msg_api_msg_config_t c;\n")
+        write(
+            '   u16 msg_id_base = vl_msg_api_get_msg_ids ("{}_{crc:08x}", '
+            "VL_MSG_{m}_LAST);\n".format(module, crc=file_crc, m=module.upper())
+        )
 
     for d in defines:
         write(
@@ -1605,9 +1606,9 @@ def generate_c_boilerplate(services, defines, counters, file_crc, module, stream
                 write("   vl_msg_api_config (&c);\n")
         except KeyError:
             pass
-
-    write("   return msg_id_base;\n")
-    write("}\n")
+    if len(defines) > 0:
+        write("   return msg_id_base;\n")
+        write("}\n")
 
     severity = {
         "error": "VL_COUNTER_SEVERITY_ERROR",