Files
codezero/tools/pyelf/elfsize.py
Bahadir Balban 6fa4884a5a Changes since April
Clean up of build directories.
Simplifications to capability model.
2010-06-01 15:08:13 +03:00

28 lines
787 B
Python

#!/usr/bin/env python
import elf
# Calculate the size of loadable sections of elf binary
def elf_binary_size(img):
elffile = elf.ElfFile.from_file(img)
paddr_first = 0
paddr_start = 0
paddr_end = 0
for pheader in elffile.pheaders:
x = pheader.ai
if str(x.p_type) != "LOAD":
continue
if paddr_first == 0:
paddr_first = 1
paddr_start = x.p_paddr.value
if paddr_start > x.p_paddr.value:
paddr_start = x.p_paddr.value
if paddr_end < x.p_paddr + x.p_memsz:
paddr_end = x.p_paddr + x.p_memsz
return paddr_end - paddr_start
# Return load address of elf file
def get_elf_load_address(img):
elffile = elf.ElfFile.from_file(img)
return elffile.header.ai.e_entry