]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
tools: ynl: create local ARRAY_SIZE() helper
authorJakub Kicinski <kuba@kernel.org>
Tue, 27 Feb 2024 22:30:22 +0000 (14:30 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 28 Feb 2024 23:25:42 +0000 (15:25 -0800)
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>
tools/net/ynl/lib/ynl-priv.h
tools/net/ynl/ynl-gen-c.py

index 1dfa09497be895124e1d5c8a90c1c6ca4e99dc55..7f24d07692bfc5f48de5fa0760ac18aa4674cbe9 100644 (file)
@@ -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;
index 90d7bf4849fc3d6ba62775a12e9d1cffaaf6ec57..407902b903e032397c7f4589bd2dca9de7189fb9 100755 (executable)
@@ -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=';')