Exemple #1
0
 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))
Exemple #2
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))