From: Stanislav Fomichev <sdf@fomichev.me>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, horms@kernel.org,
donald.hunter@gmail.com, corbet@lwn.net, andrew+netdev@lunn.ch,
kory.maincent@bootlin.com, sdf@fomichev.me,
nicolas.dichtel@6wind.com
Subject: [PATCH net-next v3 1/8] ynl: support enum-cnt-name attribute in legacy definitions
Date: Mon, 2 Dec 2024 08:29:29 -0800 [thread overview]
Message-ID: <20241202162936.3778016-2-sdf@fomichev.me> (raw)
In-Reply-To: <20241202162936.3778016-1-sdf@fomichev.me>
This is similar to existing attr-cnt-name in the attributes
to allow changing the name of the 'count' enum entry.
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
---
Documentation/netlink/genetlink-c.yaml | 3 +++
Documentation/netlink/genetlink-legacy.yaml | 3 +++
Documentation/userspace-api/netlink/c-code-gen.rst | 4 +++-
tools/net/ynl/ynl-gen-c.py | 8 ++++++--
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/Documentation/netlink/genetlink-c.yaml b/Documentation/netlink/genetlink-c.yaml
index 4f803eaac6d8..9660ffb1ed6a 100644
--- a/Documentation/netlink/genetlink-c.yaml
+++ b/Documentation/netlink/genetlink-c.yaml
@@ -106,6 +106,9 @@ additionalProperties: False
name-prefix:
description: For enum the prefix of the values, optional.
type: string
+ enum-cnt-name:
+ description: Name of the render-max counter enum entry.
+ type: string
# End genetlink-c
attribute-sets:
diff --git a/Documentation/netlink/genetlink-legacy.yaml b/Documentation/netlink/genetlink-legacy.yaml
index 8db0e22fa72c..16380e12cabe 100644
--- a/Documentation/netlink/genetlink-legacy.yaml
+++ b/Documentation/netlink/genetlink-legacy.yaml
@@ -117,6 +117,9 @@ additionalProperties: False
name-prefix:
description: For enum the prefix of the values, optional.
type: string
+ enum-cnt-name:
+ description: Name of the render-max counter enum entry.
+ type: string
# End genetlink-c
# Start genetlink-legacy
members:
diff --git a/Documentation/userspace-api/netlink/c-code-gen.rst b/Documentation/userspace-api/netlink/c-code-gen.rst
index 89de42c13350..46415e6d646d 100644
--- a/Documentation/userspace-api/netlink/c-code-gen.rst
+++ b/Documentation/userspace-api/netlink/c-code-gen.rst
@@ -56,7 +56,9 @@ If ``name-prefix`` is specified it replaces the ``$family-$enum``
portion of the entry name.
Boolean ``render-max`` controls creation of the max values
-(which are enabled by default for attribute enums).
+(which are enabled by default for attribute enums). These max
+values are named ``__$pfx-MAX`` and ``$pfx-MAX``. The name
+of the first value can be overridden via ``enum-cnt-name`` property.
Attributes
==========
diff --git a/tools/net/ynl/ynl-gen-c.py b/tools/net/ynl/ynl-gen-c.py
index d8201c4b1520..bfe95826ae3e 100755
--- a/tools/net/ynl/ynl-gen-c.py
+++ b/tools/net/ynl/ynl-gen-c.py
@@ -801,6 +801,7 @@ from lib import SpecFamily, SpecAttrSet, SpecAttr, SpecOperation, SpecEnumSet, S
self.user_type = 'int'
self.value_pfx = yaml.get('name-prefix', f"{family.ident_name}-{yaml['name']}-")
+ self.enum_cnt_name = yaml.get('enum-cnt-name', None)
super().__init__(family, yaml)
@@ -2472,9 +2473,12 @@ _C_KW = {
max_val = f' = {enum.get_mask()},'
cw.p(max_name + max_val)
else:
+ cnt_name = enum.enum_cnt_name
max_name = c_upper(name_pfx + 'max')
- cw.p('__' + max_name + ',')
- cw.p(max_name + ' = (__' + max_name + ' - 1)')
+ if not cnt_name:
+ cnt_name = '__' + name_pfx + 'max'
+ cw.p(c_upper(cnt_name) + ',')
+ cw.p(max_name + ' = (' + c_upper(cnt_name) + ' - 1)')
cw.block_end(line=';')
cw.nl()
elif const['type'] == 'const':
--
2.47.0
next prev parent reply other threads:[~2024-12-02 16:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 16:29 [PATCH net-next v3 0/8] ethtool: generate uapi header from the spec Stanislav Fomichev
2024-12-02 16:29 ` Stanislav Fomichev [this message]
2024-12-02 16:29 ` [PATCH net-next v3 2/8] ynl: skip rendering attributes with header property in uapi mode Stanislav Fomichev
2024-12-02 16:29 ` [PATCH net-next v3 3/8] ynl: support directional specs in ynl-gen-c.py Stanislav Fomichev
2024-12-02 16:29 ` [PATCH net-next v3 4/8] ynl: add missing pieces to ethtool spec to better match uapi header Stanislav Fomichev
2024-12-02 16:29 ` [PATCH net-next v3 5/8] ynl: include uapi header after all dependencies Stanislav Fomichev
2024-12-02 16:29 ` [PATCH net-next v3 6/8] ethtool: separate definitions that are gonna be generated Stanislav Fomichev
2024-12-02 16:29 ` [PATCH net-next v3 7/8] ethtool: remove the comments that are not " Stanislav Fomichev
2024-12-02 16:29 ` [PATCH net-next v3 8/8] ethtool: regenerate uapi header from the spec Stanislav Fomichev
2024-12-03 3:52 ` [PATCH net-next v3 0/8] ethtool: generate " Jakub Kicinski
2024-12-03 5:07 ` Stanislav Fomichev
2024-12-04 2:39 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241202162936.3778016-2-sdf@fomichev.me \
--to=sdf@fomichev.me \
--cc=andrew+netdev@lunn.ch \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kory.maincent@bootlin.com \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nicolas.dichtel@6wind.com \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®