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()
|