mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
tools: ynl-gen: support excluding tricky ops
The ethtool family has a small handful of quite tricky ops and a lot of simple very useful ops. Teach ynl-gen to skip ops so that we can bypass the tricky ones. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b30a1f305b
commit
008bcd6835
@@ -334,7 +334,7 @@ class SpecFamily(SpecElement):
|
||||
consts dict of all constants/enums
|
||||
fixed_header string, optional name of family default fixed header struct
|
||||
"""
|
||||
def __init__(self, spec_path, schema_path=None):
|
||||
def __init__(self, spec_path, schema_path=None, exclude_ops=None):
|
||||
with open(spec_path, "r") as stream:
|
||||
prefix = '# SPDX-License-Identifier: '
|
||||
first = stream.readline().strip()
|
||||
@@ -349,6 +349,8 @@ class SpecFamily(SpecElement):
|
||||
|
||||
super().__init__(self, spec)
|
||||
|
||||
self._exclude_ops = exclude_ops if exclude_ops else []
|
||||
|
||||
self.proto = self.yaml.get('protocol', 'genetlink')
|
||||
self.msg_id_model = self.yaml['operations'].get('enum-model', 'unified')
|
||||
|
||||
@@ -449,7 +451,13 @@ class SpecFamily(SpecElement):
|
||||
req_val = None
|
||||
if rsp_val == rsp_val_next:
|
||||
rsp_val = None
|
||||
op = self.new_operation(elem, req_val, rsp_val)
|
||||
|
||||
skip = False
|
||||
for exclude in self._exclude_ops:
|
||||
skip |= bool(exclude.match(elem['name']))
|
||||
if not skip:
|
||||
op = self.new_operation(elem, req_val, rsp_val)
|
||||
|
||||
req_val = req_val_next
|
||||
rsp_val = rsp_val_next
|
||||
|
||||
|
Reference in New Issue
Block a user