summaryrefslogtreecommitdiff
path: root/lib9p/idl.gen
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-01-23 18:45:16 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-01-23 18:45:16 -0700
commitfbc408b36495a60aaf87f5e368a11f57f246d023 (patch)
tree8e63d13e124ea464a9f6367439ef2d6605c6a872 /lib9p/idl.gen
parent104ea21b497171f5a1c4ba80d82337da3f7c2632 (diff)
parent1c368cb010df8f14da9b2585bdcf303014b57b8c (diff)
Merge branch 'lukeshu/9p-idl-defs'
Diffstat (limited to 'lib9p/idl.gen')
-rwxr-xr-xlib9p/idl.gen9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib9p/idl.gen b/lib9p/idl.gen
index 7c79a28..f154cb1 100755
--- a/lib9p/idl.gen
+++ b/lib9p/idl.gen
@@ -183,6 +183,10 @@ def gen_h(versions: set[str], typs: list[idl.Type]) -> str:
#include <stdint.h> /* for uint{{n}}_t types */
"""
+ id2typ: dict[int, idl.Message] = {}
+ for msg in [msg for msg in typs if isinstance(msg, idl.Message)]:
+ id2typ[msg.msgid] = msg
+
ret += f"""
/* config *********************************************************************/
@@ -216,7 +220,10 @@ enum {idprefix}version {{
"""
ret += f"enum {idprefix}msg_type {{ /* uint8_t */\n"
namewidth = max(len(msg.name) for msg in typs if isinstance(msg, idl.Message))
- for msg in [msg for msg in typs if isinstance(msg, idl.Message)]:
+ for n in range(0x100):
+ if n not in id2typ:
+ continue
+ msg = id2typ[n]
ret += ifdef_push(1, c_ver_ifdef(msg.in_versions))
ret += f"\t{idprefix.upper()}TYP_{msg.name.ljust(namewidth)} = {msg.msgid},\n"
ret += ifdef_pop(0)