Update of /cvsroot/wisp/wisp/users/dig
In directory sc8-pr-cvs1:/tmp/cvs-serv848
Modified Files:
elf.py elf.tran
Log Message:
extracted the body of make_ELF32_phtable as |make-elf32-phtable|
Index: elf.py
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/elf.py,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- elf.py 17 May 2003 15:05:17 -0000 1.60
+++ elf.py 18 May 2003 16:29:37 -0000 1.61
@@ -322,7 +322,7 @@
NUM = 11
from linkie import Linkie
-from tran import interpret_single
+from tran import interpret_single, Integer_Literal
def make_ELF32_header (byte_order, reloc = 0):
h = Linkie(byte_order)
@@ -349,14 +349,9 @@
return h
def make_ELF32_phtable (byte_order, names):
- t = Linkie(byte_order)
- t.align(4)
- t |= '!elf/proghdr'
- for name in names:
- interpret_single(["'", name, 'make-elf32-phentry'],
- t, include = 'elf')
- t.place_symbol('#elf/phnum', len(names))
- return t
+ input = [Integer_Literal(len(names)), 'make-elf32-phtable']
+ for name in names: input = ["'", name] + input # reversed
+ return interpret_single(input, byte_order, include = 'elf')
def make_ELF32_shtable (byte_order, names, zero_addresses = 0):
t = Linkie(byte_order)
Index: elf.tran
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/elf.tran,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- elf.tran 17 May 2003 14:16:24 -0000 1.1
+++ elf.tran 18 May 2003 16:29:37 -0000 1.2
@@ -6,7 +6,7 @@
\
\\\\ @(#) $Id$
-:[ ] make-elf32-phentry
+:[ ] make-elf32-phentry \ ( section-name -- )
4 align
dup mingle #*/p_type t,
dup mingle !* t, \ offset
@@ -16,6 +16,13 @@
dup mingle #*/memsz t,
dup mingle #*/p_flags t,
mingle #*/p_align t,
+;
+
+:[ ] make-elf32-phtable \ ( ... section-name count -- )
+ dup =: #elf/phnum
+ 4 align
+ label !elf/proghdr
+ times make-elf32-phentry
;
\ vim: ft=tran
|