diff options
Diffstat (limited to 'fs/elf.c')
| -rw-r--r-- | fs/elf.c | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -99,13 +99,12 @@ uint32_t load_elf(char *name, uint32_t *alloc) uint32_t pos=0; klog("loading %s",name); - ext2_read_inode(ext2_ramimage,inode_nr,vaddr,&pos,4096*64); // max ignored?? + ext2_read_inode(ext2_ramimage,inode_nr,vaddr,&pos,4096*VMEM_USER_PROG_PAGES); // max ignored?? klog("ELF File loaded to final destination."); Elf32_Ehdr *elf; elf=vaddr; - if(elf->e_ident[0]!=0x7f||elf->e_ident[1]!='E'||elf->e_ident[2]!='L'||elf->e_ident[3]!='F') kpanic("ELF mismatch!?"); @@ -138,6 +137,13 @@ uint32_t load_elf(char *name, uint32_t *alloc) for(int phidx=0;phidx<elf->e_phnum;phidx++) { Elf32_Phdr *phdr=vaddr+elf->e_phoff+phidx*elf->e_phentsize; + klog("-- PROGRAMM HEADER %d --",phidx+1); + klog("p-type: %d",phdr->p_type); + klog("p-offset: 0x%08X",phdr->p_offset); + klog("p-vaddr: 0x%08X",phdr->p_vaddr); + klog("p-filesz: 0x%08X",phdr->p_filesz); + klog("p-memsz: 0x%08X",phdr->p_memsz); + if(phidx==0) { @@ -148,14 +154,6 @@ uint32_t load_elf(char *name, uint32_t *alloc) { - /* - klog("-- PROGRAMM HEADER %d --",phidx+1); - klog("p-type: %d",phdr->p_type); - klog("p-offset: 0x%08X",phdr->p_offset); - klog("p-vaddr: 0x%08X",phdr->p_vaddr); - klog("p-filesz: 0x%08X",phdr->p_filesz); - klog("p-memsz: 0x%08X",phdr->p_memsz); - */ klog("data: 0x%08X-0x%08X",phdr->p_vaddr,phdr->p_vaddr+phdr->p_filesz); klog("bss: 0x%08X-0x%08X",phdr->p_vaddr+phdr->p_filesz,phdr->p_vaddr+phdr->p_memsz); |
