Skip to content

Commit 30c9020

Browse files
kuba-moodavem330
authored andcommitted
tools: ynl-gen: use enum name from the spec
The enum name used for id-to-str table does not handle the enum-name override in the spec correctly. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 19ed9b3 commit 30c9020

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

tools/net/ynl/ynl-gen-c.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -755,11 +755,17 @@ def __init__(self, family, yaml):
755755
if 'enum-name' in yaml:
756756
if yaml['enum-name']:
757757
self.enum_name = 'enum ' + c_lower(yaml['enum-name'])
758+
self.user_type = self.enum_name
758759
else:
759760
self.enum_name = None
760761
else:
761762
self.enum_name = 'enum ' + self.render_name
762763

764+
if self.enum_name:
765+
self.user_type = self.enum_name
766+
else:
767+
self.user_type = 'int'
768+
763769
self.value_pfx = yaml.get('name-prefix', f"{family.name}-{yaml['name']}-")
764770

765771
super().__init__(family, yaml)
@@ -1483,8 +1489,8 @@ def put_typol(cw, struct):
14831489

14841490
def _put_enum_to_str_helper(cw, render_name, map_name, arg_name, enum=None):
14851491
args = [f'int {arg_name}']
1486-
if enum and not ('enum-name' in enum and not enum['enum-name']):
1487-
args = [f'enum {render_name} {arg_name}']
1492+
if enum:
1493+
args = [enum.user_type + ' ' + arg_name]
14881494
cw.write_func_prot('const char *', f'{render_name}_str', args)
14891495
cw.block_start()
14901496
if enum and enum.type == 'flags':
@@ -1522,9 +1528,7 @@ def put_op_name(family, cw):
15221528

15231529

15241530
def put_enum_to_str_fwd(family, cw, enum):
1525-
args = [f'enum {enum.render_name} value']
1526-
if 'enum-name' in enum and not enum['enum-name']:
1527-
args = ['int value']
1531+
args = [enum.user_type + ' value']
15281532
cw.write_func_prot('const char *', f'{enum.render_name}_str', args, suffix=';')
15291533

15301534

0 commit comments

Comments
 (0)