mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 16:12:59 +02:00
tools: ynl-gen: support limits using definitions
Support using defines / constants in integer checks. Carolina will need this for rate API extensions. Reported-by: Carolina Jubran <cjubran@nvidia.com> Link: https://lore.kernel.org/1e886aaf-e1eb-4f1a-b7ef-f63b350a3320@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Link: https://patch.msgid.link/20250203215510.1288728-2-kuba@kernel.org Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
7e8b24e24a
commit
fa796178e5
|
|
@ -14,9 +14,10 @@ $defs:
|
|||
pattern: ^[0-9A-Za-z_-]+( - 1)?$
|
||||
minimum: 0
|
||||
len-or-limit:
|
||||
# literal int or limit based on fixed-width type e.g. u8-min, u16-max, etc.
|
||||
# literal int, const name, or limit based on fixed-width type
|
||||
# e.g. u8-min, u16-max, etc.
|
||||
type: [ string, integer ]
|
||||
pattern: ^[su](8|16|32|64)-(min|max)$
|
||||
pattern: ^[0-9A-Za-z_-]+$
|
||||
minimum: 0
|
||||
|
||||
# Schema for specs
|
||||
|
|
|
|||
|
|
@ -14,9 +14,10 @@ $defs:
|
|||
pattern: ^[0-9A-Za-z_-]+( - 1)?$
|
||||
minimum: 0
|
||||
len-or-limit:
|
||||
# literal int or limit based on fixed-width type e.g. u8-min, u16-max, etc.
|
||||
# literal int, const name, or limit based on fixed-width type
|
||||
# e.g. u8-min, u16-max, etc.
|
||||
type: [ string, integer ]
|
||||
pattern: ^[su](8|16|32|64)-(min|max)$
|
||||
pattern: ^[0-9A-Za-z_-]+$
|
||||
minimum: 0
|
||||
|
||||
# Schema for specs
|
||||
|
|
|
|||
|
|
@ -14,9 +14,10 @@ $defs:
|
|||
pattern: ^[0-9A-Za-z_-]+( - 1)?$
|
||||
minimum: 0
|
||||
len-or-limit:
|
||||
# literal int or limit based on fixed-width type e.g. u8-min, u16-max, etc.
|
||||
# literal int, const name, or limit based on fixed-width type
|
||||
# e.g. u8-min, u16-max, etc.
|
||||
type: [ string, integer ]
|
||||
pattern: ^[su](8|16|32|64)-(min|max)$
|
||||
pattern: ^[0-9A-Za-z_-]+$
|
||||
minimum: 0
|
||||
|
||||
# Schema for specs
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ class Type(SpecAttr):
|
|||
if isinstance(value, int):
|
||||
return value
|
||||
if value in self.family.consts:
|
||||
raise Exception("Resolving family constants not implemented, yet")
|
||||
return self.family.consts[value]["value"]
|
||||
return limit_to_number(value)
|
||||
|
||||
def get_limit_str(self, limit, default=None, suffix=''):
|
||||
|
|
@ -110,6 +110,9 @@ class Type(SpecAttr):
|
|||
if isinstance(value, int):
|
||||
return str(value) + suffix
|
||||
if value in self.family.consts:
|
||||
const = self.family.consts[value]
|
||||
if const.get('header'):
|
||||
return c_upper(value)
|
||||
return c_upper(f"{self.family['name']}-{value}")
|
||||
return c_upper(value)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user