summaryrefslogtreecommitdiff
path: root/lib9p/core_gen/c.py
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-04-21 17:28:01 -0600
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-04-21 17:28:49 -0600
commit1a55efa8be3769d9e31724be31db8f967813133d (patch)
tree8028357729649fcf8678c69b63342aa13c34e635 /lib9p/core_gen/c.py
parent05f170fc9382dc619a6a3f7ea22c423456a96580 (diff)
lib9p_srv: Cap Tread->count
Diffstat (limited to 'lib9p/core_gen/c.py')
-rw-r--r--lib9p/core_gen/c.py15
1 files changed, 6 insertions, 9 deletions
diff --git a/lib9p/core_gen/c.py b/lib9p/core_gen/c.py
index 998031b..b0ff871 100644
--- a/lib9p/core_gen/c.py
+++ b/lib9p/core_gen/c.py
@@ -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"