[Wisp-cvs] wisp/users/dig elf.py,1.60,1.61 elf.tran,1.1,1.2
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-05-18 16:29:43
|
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 |