diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-04-21 17:30:52 -0600 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-04-21 17:30:52 -0600 |
commit | ef3adc0d857cc0df7579ee66b7d25172ca8af2e1 (patch) | |
tree | 8028357729649fcf8678c69b63342aa13c34e635 /lib9p/core_gen/c.py | |
parent | 59e1fc370371c8da876d6c2ce68794bb7f89e525 (diff) | |
parent | 1a55efa8be3769d9e31724be31db8f967813133d (diff) |
Diffstat (limited to 'lib9p/core_gen/c.py')
-rw-r--r-- | lib9p/core_gen/c.py | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/lib9p/core_gen/c.py b/lib9p/core_gen/c.py index a300404..b0ff871 100644 --- a/lib9p/core_gen/c.py +++ b/lib9p/core_gen/c.py @@ -79,9 +79,9 @@ def gen_c(versions: set[str], typs: list[idl.UserType]) -> str: if not isinstance(typ, idl.Bitfield): continue ret += "\n" - ret += cutil.ifdef_push( - 1, c9util.ver_ifdef(typ.in_versions - {"unknown"}) - ) # SPECIAL (initialization) + ret += cutil.ifdef_push( # SPECIAL (initialization) + 1, c9util.ver_ifdef(typ.in_versions - {"uninitialized"}) + ) ret += f"static const {c9util.typename(typ)} {typ.typname}_masks[{c9util.ver_enum('NUM')}] = {{\n" verwidth = max(len(ver) for ver in versions) for ver in sorted(versions): @@ -123,18 +123,15 @@ def gen_c(versions: set[str], typs: list[idl.UserType]) -> str: ret += "\n" ret += f"const struct {c9util.ident('_ver_tentry')} {c9util.ident('_table_ver')}[{c9util.ver_enum('NUM')}] = {{\n" rerror = next(typ for typ in typs if typ.typname == "Rerror") + rlerror = next(typ for typ in typs if typ.typname == "Rlerror") + rread = next(typ for typ in typs if typ.typname == "Rread") for ver in sorted(versions): - # XXX: There are good arguments that min_msg_size should be - # something larger than rerror.min_size(). - # srv.c:respond_error() assumes that min_msg_size is - # rerror.min_size(); if you do change min_msg_size to - # something larger, then be sure to update respond_error(). ret += cutil.ifdef_push(1, c9util.ver_ifdef({ver})) - min_msg_size = rerror.min_size(ver) + min_rerror_size = rerror.min_size(ver) if ver == "9P2000.L": # SPECIAL (9P2000.L) - rlerror = next(typ for typ in typs if typ.typname == "Rlerror") - min_msg_size = rlerror.min_size(ver) - ret += f'\t[{c9util.ver_enum(ver)}] = {{.name="{ver}", .min_msg_size={min_msg_size}}},\n' + min_rerror_size = rlerror.min_size(ver) + min_rread_size = rread.min_size(ver) + ret += f'\t[{c9util.ver_enum(ver)}] = {{.name="{ver}", .min_Rerror_size={min_rerror_size}, .min_Rread_size={min_rread_size}}},\n' ret += cutil.ifdef_pop(0) ret += "};\n" |