summaryrefslogtreecommitdiff
path: root/tools/binman/entry.py
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-07-20 21:24:05 +0300
committerSimon Glass <sjg@chromium.org>2019-07-29 18:38:06 +0300
commit7210c89eac7fb68947f5f31372d9f1e93f42df0c (patch)
treef1664e112079402eb0296f8e24803fca0dafaa5a /tools/binman/entry.py
parenta9cd39ef751efdd05a3a5ccae13e28d8a993292d (diff)
downloadu-boot-7210c89eac7fb68947f5f31372d9f1e93f42df0c.tar.xz
binman: Update Entry.WriteData() to handle special sections
At present this method assumes that the parent section does not need to recalculate its position or adjust any metadata it may contain. But when the entry changes size this may not be true. Also if the parent section is more than just a container (e.g. it is a CBFS) then the section may need to regenerate its output. Add a new WriteChildData() method to sections and call this from the WriteData() method, to handle this situation. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/binman/entry.py')
-rw-r--r--tools/binman/entry.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index 8416214fc9..6a2c6e0d92 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -751,7 +751,26 @@ features to produce new behaviours.
self.contents_size = self.size
ok = self.ProcessContentsUpdate(data)
self.Detail('WriteData: size=%x, ok=%s' % (len(data), ok))
- return ok
+ section_ok = self.section.WriteChildData(self)
+ return ok and section_ok
+
+ def WriteChildData(self, child):
+ """Handle writing the data in a child entry
+
+ This should be called on the child's parent section after the child's
+ data has been updated. It
+
+ This base-class implementation does nothing, since the base Entry object
+ does not have any children.
+
+ Args:
+ child: Child Entry that was written
+
+ Returns:
+ True if the section could be updated successfully, False if the
+ data is such that the section could not updat
+ """
+ return True
def GetSiblingOrder(self):
"""Get the relative order of an entry amoung its siblings