[Wisp-cvs] wisp/users/dig elf.py,1.6,1.7 makehello.py,1.2,1.3
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-02-08 18:38:46
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv18683 Modified Files: elf.py makehello.py Log Message: implemented make_ELF32_pheader Index: elf.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/elf.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- elf.py 6 Feb 2003 21:58:59 -0000 1.6 +++ elf.py 8 Feb 2003 18:38:42 -0000 1.7 @@ -344,9 +344,22 @@ h.emit_tetra_sum(['elf/shoff']) h.emit_tetra_sum(['elf/flags']) h.emit_wyde(0x34) # e_ehsize - h.emit_wyde_sum(['elf/phentsize']) + h.emit_wyde(32) # e_phentsize h.emit_wyde_sum(['elf/phnum']) h.emit_wyde_sum(['elf/shentsize']) h.emit_wyde_sum(['elf/shnum']) h.emit_wyde_sum(['elf/shstrndx']) + return h + +def make_ELF32_pheader (byte_order, name): + h = Linkie(byte_order) + h.align(4) + h.emit_tetra_sum([name + '/p_type']) + h.emit_tetra_sum([name + '/offset']) + h.emit_tetra_sum([name]) # p_vaddr + h.emit_tetra_sum([name]) # p_paddr + h.emit_tetra_sum([name + '/filesz']) + h.emit_tetra_sum([name + '/memsz']) + h.emit_tetra_sum([name + '/p_flags']) + h.emit_tetra_sum([name + '/alignment']) return h Index: makehello.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/makehello.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- makehello.py 6 Feb 2003 21:28:21 -0000 1.2 +++ makehello.py 8 Feb 2003 18:38:42 -0000 1.3 @@ -7,7 +7,7 @@ #### @(#) $Id$ from linkie import Linkie -from elf import make_ELF32_header +from elf import * code = Linkie('<') # ia32 code.place_symbol('_start') @@ -26,10 +26,12 @@ header = make_ELF32_header('<') +pheader = make_ELF32_pheader('<', '.text') + header.dump() print code.dump() print data.dump() print -(header + code + data).dump() +(header + pheader + code + data).dump() |