[PATCH net-next] tools: ynl-gen: generate docs for <name>_max/_mask enums

From: Arkadiusz Kubalewski
Date: Tue Jun 13 2023 - 19:19:30 EST


Including ynl generated uapi header files into source kerneldocs
(rst files in Documentation/) produces warnings during documentation
builds (i.e. make htmldocs)

Prevent warnings by generating also description for enums where rander_max
was selected.

Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@xxxxxxxxx>
---
include/uapi/linux/netdev.h | 1 +
tools/include/uapi/linux/netdev.h | 1 +
tools/net/ynl/ynl-gen-c.py | 11 ++++++++++-
3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/include/uapi/linux/netdev.h b/include/uapi/linux/netdev.h
index 639524b59930..d78f7ae95092 100644
--- a/include/uapi/linux/netdev.h
+++ b/include/uapi/linux/netdev.h
@@ -24,6 +24,7 @@
* XDP buffer support in the driver napi callback.
* @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature informs if netdev implements
* non-linear XDP buffer support in ndo_xdp_xmit callback.
+ * @NETDEV_XDP_ACT_MASK: valid values mask
*/
enum netdev_xdp_act {
NETDEV_XDP_ACT_BASIC = 1,
diff --git a/tools/include/uapi/linux/netdev.h b/tools/include/uapi/linux/netdev.h
index 639524b59930..d78f7ae95092 100644
--- a/tools/include/uapi/linux/netdev.h
+++ b/tools/include/uapi/linux/netdev.h
@@ -24,6 +24,7 @@
* XDP buffer support in the driver napi callback.
* @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature informs if netdev implements
* non-linear XDP buffer support in ndo_xdp_xmit callback.
+ * @NETDEV_XDP_ACT_MASK: valid values mask
*/
enum netdev_xdp_act {
NETDEV_XDP_ACT_BASIC = 1,
diff --git a/tools/net/ynl/ynl-gen-c.py b/tools/net/ynl/ynl-gen-c.py
index 0b5e0802a9a7..0d396bf98c27 100755
--- a/tools/net/ynl/ynl-gen-c.py
+++ b/tools/net/ynl/ynl-gen-c.py
@@ -2011,6 +2011,7 @@ def render_uapi(family, cw):
# Write kdoc for enum and flags (one day maybe also structs)
if const['type'] == 'enum' or const['type'] == 'flags':
enum = family.consts[const['name']]
+ name_pfx = const.get('name-prefix', f"{family.name}-{const['name']}-")

if enum.has_doc():
cw.p('/**')
@@ -2022,10 +2023,18 @@ def render_uapi(family, cw):
if entry.has_doc():
doc = '@' + entry.c_name + ': ' + entry['doc']
cw.write_doc_line(doc)
+ if const.get('render-max', False):
+ if const['type'] == 'flags':
+ doc = '@' + c_upper(name_pfx + 'mask') + ': valid values mask'
+ cw.write_doc_line(doc)
+ else:
+ doc = '@' + c_upper(name_pfx + 'max') + ': max valid value'
+ cw.write_doc_line(doc)
+ doc = '@__' + c_upper(name_pfx + 'max') + ': do not use'
+ cw.write_doc_line(doc)
cw.p(' */')

uapi_enum_start(family, cw, const, 'name')
- name_pfx = const.get('name-prefix', f"{family.name}-{const['name']}-")
for entry in enum.entries.values():
suffix = ','
if entry.value_change:
--
2.37.3