[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <m234e8mndc.fsf@gmail.com>
Date: Wed, 16 Apr 2025 11:06:39 +0100
From: Donald Hunter <donald.hunter@...il.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com,
pabeni@...hat.com, andrew+netdev@...n.ch, horms@...nel.org,
daniel@...earbox.net, sdf@...ichev.me, jacob.e.keller@...el.com
Subject: Re: [PATCH net 1/8] tools: ynl-gen: don't declare loop iterator in
place
Jakub Kicinski <kuba@...nel.org> writes:
> The codegen tries to follow the "old" C style and declare loop
> iterators at the start of the block / function. Only nested
> request handling breaks this style, so adjust it.
>
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
> ---
> tools/net/ynl/pyynl/ynl_gen_c.py | 25 +++++++++++++++++++++----
> 1 file changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/tools/net/ynl/pyynl/ynl_gen_c.py b/tools/net/ynl/pyynl/ynl_gen_c.py
> index a1427c537030..305f5696bc4f 100755
> --- a/tools/net/ynl/pyynl/ynl_gen_c.py
> +++ b/tools/net/ynl/pyynl/ynl_gen_c.py
> @@ -654,10 +654,10 @@ from lib import SpecFamily, SpecAttrSet, SpecAttr, SpecOperation, SpecEnumSet, S
> def attr_put(self, ri, var):
> if self.attr['type'] in scalars:
> put_type = self.type
> - ri.cw.p(f"for (unsigned int i = 0; i < {var}->n_{self.c_name}; i++)")
> + ri.cw.p(f"for (i = 0; i < {var}->n_{self.c_name}; i++)")
> ri.cw.p(f"ynl_attr_put_{put_type}(nlh, {self.enum_name}, {var}->{self.c_name}[i]);")
> elif 'type' not in self.attr or self.attr['type'] == 'nest':
> - ri.cw.p(f"for (unsigned int i = 0; i < {var}->n_{self.c_name}; i++)")
> + ri.cw.p(f"for (i = 0; i < {var}->n_{self.c_name}; i++)")
> self._attr_put_line(ri, var, f"{self.nested_render_name}_put(nlh, " +
> f"{self.enum_name}, &{var}->{self.c_name}[i])")
> else:
> @@ -1644,11 +1644,23 @@ _C_KW = {
>
>
> def put_req_nested(ri, struct):
> + local_vars = []
> + init_lines = []
> +
> + local_vars.append('struct nlattr *nest;')
> + init_lines.append("nest = ynl_attr_nest_start(nlh, attr_type);")
Minor nit: the series uses += ['...'] elsewhere, is it worth being
consistent?
Either way,
Reviewed-by: Donald Hunter <donald.hunter@...il.com>
Powered by blists - more mailing lists