• Jakub Kicinski's avatar
    tools: ynl-gen: generate enum-to-string helpers · 21b6e302
    Jakub Kicinski authored
    It's sometimes useful to print the name of an enum value,
    flag or name of the op. Python can do it, add C helper
    code gen for getting names of things.
    
    Example:
    
      static const char * const netdev_xdp_act_strmap[] = {
    	[0] = "basic",
    	[1] = "redirect",
    	[2] = "ndo-xmit",
    	[3] = "xsk-zerocopy",
    	[4] = "hw-offload",
    	[5] = "rx-sg",
    	[6] = "ndo-xmit-sg",
      };
    
      const char *netdev_xdp_act_str(enum netdev_xdp_act value)
      {
    	value = ffs(value) - 1;
    	if (value < 0 || value >= (int)MNL_ARRAY_SIZE(netdev_xdp_act_strmap))
    		return NULL;
    	return netdev_xdp_act_strmap[value];
      }
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    21b6e302
ynl-gen-c.py 79.5 KB