binman: Use 'files-compress' to set compression for files
At present we use 'compress' as the property to set the compression of a 'files' entry. But this conflicts with the same property for entries, of which Entry_section is a subclass. Strictly speaking, since Entry_files is in fact a subclass of Entry_section, the files can be compressed individually but also the section (that contains all the files) can itself be compressed. With this change, it is possible to express that. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -299,7 +299,7 @@ Entry: files: Entry containing a set of files
|
||||
|
||||
Properties / Entry arguments:
|
||||
- pattern: Filename pattern to match the files to include
|
||||
- compress: Compression algorithm to use:
|
||||
- files-compress: Compression algorithm to use:
|
||||
none: No compression
|
||||
lz4: Use lz4 compression (via 'lz4' command-line utility)
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class Entry_files(Entry_section):
|
||||
|
||||
Properties / Entry arguments:
|
||||
- pattern: Filename pattern to match the files to include
|
||||
- compress: Compression algorithm to use:
|
||||
- files-compress: Compression algorithm to use:
|
||||
none: No compression
|
||||
lz4: Use lz4 compression (via 'lz4' command-line utility)
|
||||
|
||||
@@ -36,7 +36,8 @@ class Entry_files(Entry_section):
|
||||
self._pattern = fdt_util.GetString(self._node, 'pattern')
|
||||
if not self._pattern:
|
||||
self.Raise("Missing 'pattern' property")
|
||||
self._compress = fdt_util.GetString(self._node, 'compress', 'none')
|
||||
self._files_compress = fdt_util.GetString(self._node, 'files-compress',
|
||||
'none')
|
||||
self._require_matches = fdt_util.GetBool(self._node,
|
||||
'require-matches')
|
||||
|
||||
@@ -53,7 +54,7 @@ class Entry_files(Entry_section):
|
||||
subnode = state.AddSubnode(self._node, name)
|
||||
state.AddString(subnode, 'type', 'blob')
|
||||
state.AddString(subnode, 'filename', fname)
|
||||
state.AddString(subnode, 'compress', self._compress)
|
||||
state.AddString(subnode, 'compress', self._files_compress)
|
||||
|
||||
# Read entries again, now that we have some
|
||||
self._ReadEntries()
|
||||
|
||||
@@ -160,7 +160,7 @@ class Entry_section(Entry):
|
||||
section_data += tools.GetBytes(self._pad_byte, pad)
|
||||
self.Detail('GetData: %d entries, total size %#x' %
|
||||
(len(self._entries), len(section_data)))
|
||||
return section_data
|
||||
return self.CompressData(section_data)
|
||||
|
||||
def GetOffsets(self):
|
||||
"""Handle entries that want to set the offset/size of other entries
|
||||
@@ -414,7 +414,7 @@ class Entry_section(Entry):
|
||||
return None
|
||||
|
||||
def GetEntryContents(self):
|
||||
"""Call ObtainContents() for the section
|
||||
"""Call ObtainContents() for each entry in the section
|
||||
"""
|
||||
todo = self._entries.values()
|
||||
for passnum in range(3):
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
binman {
|
||||
files {
|
||||
pattern = "files/*.dat";
|
||||
compress = "lz4";
|
||||
files-compress = "lz4";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user