def _AddEntries(areas, entry): entries = entry.GetEntries() tout.Debug("fmap: Add entry '%s' type '%s' (%s subentries)" % (entry.GetPath(), entry.etype, ToHexSize(entries))) if entries and entry.etype != 'cbfs': for subentry in entries.values(): _AddEntries(areas, subentry) else: pos = entry.image_pos if pos is not None: pos -= entry.section.GetRootSkipAtStart() areas.append( fmap_util.FmapArea(pos or 0, entry.size or 0, tools.FromUnicode(entry.name), 0))
def _AddEntries(areas, entry): entries = entry.GetEntries() tout.debug("fmap: Add entry '%s' type '%s' (%s subentries)" % (entry.GetPath(), entry.etype, to_hex_size(entries))) if entries and entry.etype != 'cbfs': # Create an area for the section, which encompasses all entries # within it if entry.image_pos is None: pos = 0 else: pos = entry.image_pos - entry.GetRootSkipAtStart() # Drop @ symbols in name name = entry.name.replace('@', '') areas.append(fmap_util.FmapArea(pos, entry.size or 0, name, 0)) for subentry in entries.values(): _AddEntries(areas, subentry) else: pos = entry.image_pos if pos is not None: pos -= entry.section.GetRootSkipAtStart() areas.append( fmap_util.FmapArea(pos or 0, entry.size or 0, entry.name, 0))