diff options
author | Lionel Landwerlin <[email protected]> | 2017-03-25 02:52:33 +0000 |
---|---|---|
committer | Lionel Landwerlin <[email protected]> | 2017-03-31 01:24:56 +0100 |
commit | 0f83c0514929577a824877870a98f945d90a689e (patch) | |
tree | 868135e2b8c14b1d314c955ad13a4aa69c6a1969 /src/intel/genxml | |
parent | 0f3de89a56ac326a16eebb8701a1c8218c1f65dd (diff) |
intel: genxml: compress all gen files into one
Combining all the files into a single string didn't make any
difference in the size of the aubinator binary.
With this change we now also embed gen4/4.5/5 descriptions, which
increases the aubinator size by ~16Kb.
v2 (Lionel): rebase makefiles
Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/intel/genxml')
-rw-r--r-- | src/intel/genxml/.gitignore | 2 | ||||
-rw-r--r-- | src/intel/genxml/gen_zipped_file.py | 34 |
2 files changed, 30 insertions, 6 deletions
diff --git a/src/intel/genxml/.gitignore b/src/intel/genxml/.gitignore index 3e2f1cfa9f0..f2db03b4a16 100644 --- a/src/intel/genxml/.gitignore +++ b/src/intel/genxml/.gitignore @@ -1,3 +1,3 @@ gen*_bits.h gen*_pack.h -gen*_xml.h +genX_xml.h diff --git a/src/intel/genxml/gen_zipped_file.py b/src/intel/genxml/gen_zipped_file.py index 66222cabe71..af2008bea03 100644 --- a/src/intel/genxml/gen_zipped_file.py +++ b/src/intel/genxml/gen_zipped_file.py @@ -26,22 +26,46 @@ from __future__ import print_function import os import sys import zlib +import xml.etree.cElementTree as et def main(): if len(sys.argv) < 2: print("No input xml file specified") sys.exit(1) - with open(sys.argv[1]) as f: - compressed_data = zlib.compress(f.read()) + compress = zlib.compressobj() - gen_name = os.path.splitext(os.path.basename(sys.argv[1]))[0] - print("static const uint8_t %s_xml[] = {" % gen_name) - print(" ", end='') + print("static const struct {") + print(" uint32_t gen_10;") + print(" uint32_t offset;") + print(" uint32_t length;") + print("} genxml_files_table[] = {") + + xml_offset = 0 + compressed_data = '' + for i in range(1, len(sys.argv)): + filename = sys.argv[i] + xml = open(filename).read() + xml_length = len(xml) + root = et.fromstring(xml) + + print(" { %i, %i, %i }," % + (int(float(root.attrib['gen']) * 10), xml_offset, xml_length)) + + compressed_data += compress.compress(xml) + xml_offset += xml_length + print("};") + + compressed_data += compress.flush() + + print("") + print("static const uint8_t compress_genxmls[] = {") + print(" ", end='') for i, c in enumerate(compressed_data, start=1): print("0x%.2x, " % ord(c), end='\n ' if not i % 12 else '') print('\n};') + if __name__ == '__main__': main() |