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)

Reply via email to