summaryrefslogtreecommitdiffstats
path: root/tools/net/ynl
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2024-02-27 14:30:22 -0800
committerJakub Kicinski <kuba@kernel.org>2024-02-28 15:25:42 -0800
commit7600875f295f4591eebbb3744ad5de3b4f8e4117 (patch)
treebfde899f00cec63e0c742adcf63b8182324ede15 /tools/net/ynl
parent0b3ece44220887e7cf1e7469867fdd8ce9986c16 (diff)
downloadlinux-stable-7600875f295f4591eebbb3744ad5de3b4f8e4117.tar.gz
linux-stable-7600875f295f4591eebbb3744ad5de3b4f8e4117.tar.bz2
linux-stable-7600875f295f4591eebbb3744ad5de3b4f8e4117.zip
tools: ynl: create local ARRAY_SIZE() helper
libc doesn't have an ARRAY_SIZE() create one locally. Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Link: https://lore.kernel.org/r/20240227223032.1835527-6-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/net/ynl')
-rw-r--r--tools/net/ynl/lib/ynl-priv.h3
-rwxr-xr-xtools/net/ynl/ynl-gen-c.py4
2 files changed, 5 insertions, 2 deletions
diff --git a/tools/net/ynl/lib/ynl-priv.h b/tools/net/ynl/lib/ynl-priv.h
index 1dfa09497be8..7f24d07692bf 100644
--- a/tools/net/ynl/lib/ynl-priv.h
+++ b/tools/net/ynl/lib/ynl-priv.h
@@ -27,6 +27,9 @@ enum ynl_policy_type {
YNL_PT_BITFIELD32,
};
+#define YNL_ARRAY_SIZE(array) (sizeof(array) ? \
+ sizeof(array) / sizeof(array[0]) : 0)
+
struct ynl_policy_attr {
enum ynl_policy_type type;
unsigned int len;
diff --git a/tools/net/ynl/ynl-gen-c.py b/tools/net/ynl/ynl-gen-c.py
index 90d7bf4849fc..407902b903e0 100755
--- a/tools/net/ynl/ynl-gen-c.py
+++ b/tools/net/ynl/ynl-gen-c.py
@@ -1535,7 +1535,7 @@ def _put_enum_to_str_helper(cw, render_name, map_name, arg_name, enum=None):
cw.block_start()
if enum and enum.type == 'flags':
cw.p(f'{arg_name} = ffs({arg_name}) - 1;')
- cw.p(f'if ({arg_name} < 0 || {arg_name} >= (int)MNL_ARRAY_SIZE({map_name}))')
+ cw.p(f'if ({arg_name} < 0 || {arg_name} >= (int)YNL_ARRAY_SIZE({map_name}))')
cw.p('return NULL;')
cw.p(f'return {map_name}[{arg_name}];')
cw.block_end()
@@ -2569,7 +2569,7 @@ def render_user_family(family, cw, prototype):
cw.p('.hdr_len\t= sizeof(struct genlmsghdr),')
if family.ntfs:
cw.p(f".ntf_info\t= {family['name']}_ntf_info,")
- cw.p(f".ntf_info_size\t= MNL_ARRAY_SIZE({family['name']}_ntf_info),")
+ cw.p(f".ntf_info_size\t= YNL_ARRAY_SIZE({family['name']}_ntf_info),")
cw.block_end(line=';')