Module: Mesa Branch: main Commit: 5e275d8a2bff5e24050d6ae275ac39ecadb82322 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e275d8a2bff5e24050d6ae275ac39ecadb82322
Author: Jordan Justen <[email protected]> Date: Fri Dec 23 17:44:03 2022 -0800 intel/genxml: Add GenXml class into intel_genxml module Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24547> --- src/intel/genxml/gen_bits_header.py | 10 +++++----- src/intel/genxml/gen_pack_header.py | 11 +++++------ 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)
