diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2022-12-23 17:44:03 -0800 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2023-08-07 14:58:57 -0700 |
commit | f1d7c6d14e16538bed373f2997d44a376efb85a8 (patch) | |
tree | 2c69394c89f2326da517b63bcb04b28a873d66ab | |
parent | 79a3a3a4ddc9d2a5753134fe47f269fae68f6955 (diff) |
intel/genxml: Add GenXml class into intel_genxml module
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
-rw-r--r-- | src/intel/genxml/gen_bits_header.py | 10 | ||||
-rw-r--r-- | src/intel/genxml/gen_pack_header.py | 11 | ||||
-rwxr-xr-x | src/intel/genxml/intel_genxml.py | 5 |
3 files changed, 15 insertions, 11 deletions
diff --git a/src/intel/genxml/gen_bits_header.py b/src/intel/genxml/gen_bits_header.py index f0c3ab9cbc7..364fb7fd11e 100644 --- a/src/intel/genxml/gen_bits_header.py +++ b/src/intel/genxml/gen_bits_header.py @@ -20,8 +20,8 @@ # SOFTWARE. import argparse +import intel_genxml import os -import xml.etree.ElementTree as et from mako.template import Template from util import * @@ -245,9 +245,8 @@ class XmlParser(object): self.container_stack = [] self.container_stack.append(None) - def parse(self, filename): - xml = et.parse(filename) - root = xml.getroot() + def emit_genxml(self, genxml): + root = genxml.et.getroot() self.gen = Gen(root.attrib['gen']) for item in root: self.process_item(item) @@ -335,7 +334,8 @@ def main(): for source in pargs.xml_sources: p = XmlParser(containers) p.engines = set(engines) - p.parse(source) + genxml = intel_genxml.GenXml(source) + p.emit_genxml(genxml) included_symbols_list = pargs.include_symbols.split(',') for _name_field in included_symbols_list: diff --git a/src/intel/genxml/gen_pack_header.py b/src/intel/genxml/gen_pack_header.py index 20a15c90a71..8d49a74e824 100644 --- a/src/intel/genxml/gen_pack_header.py +++ b/src/intel/genxml/gen_pack_header.py @@ -2,7 +2,7 @@ import argparse import ast -import xml.etree.ElementTree as et +import intel_genxml import re import sys import copy @@ -613,9 +613,8 @@ class Parser(object): print(' %-36s = %6d,' % (name.upper(), value.value)) print('};\n') - def parse(self, filename): - xml = et.parse(filename) - root = xml.getroot() + def emit_genxml(self, genxml): + root = genxml.et.getroot() self.platform = root.attrib["name"] self.gen = root.attrib["gen"].replace('.', '') print(pack_header % {'license': license, 'platform': self.platform, 'guard': self.gen_guard()}) @@ -641,7 +640,6 @@ def parse_args(): def main(): pargs = parse_args() - input_file = pargs.xml_source engines = pargs.engines.split(',') valid_engines = [ 'render', 'blitter', 'video' ] if set(engines) - set(valid_engines): @@ -650,9 +648,10 @@ def main(): print("\t%s" % e) sys.exit(1) + genxml = intel_genxml.GenXml(pargs.xml_source) p = Parser() p.engines = set(engines) - p.parse(input_file) + p.emit_genxml(genxml) if __name__ == '__main__': main() diff --git a/src/intel/genxml/intel_genxml.py b/src/intel/genxml/intel_genxml.py index dfbf8c10690..8534a07380b 100755 --- a/src/intel/genxml/intel_genxml.py +++ b/src/intel/genxml/intel_genxml.py @@ -164,3 +164,8 @@ def sort_xml(xml: et.ElementTree) -> None: for n in new_elems: process_attribs(n) genxml[:] = new_elems + + +class GenXml(object): + def __init__(self, filename): + self.et = et.parse(filename) |