elfoff2h
if (esym == 0 && elfoff2h(shp[i].sh_flags) & SHF_WRITE &&
elfoff2h(shp[i].sh_flags) & SHF_ALLOC)
esym = elfoff2h(shp[i].sh_addr);
letoh32(shp[i].sh_type), roundup(elfoff2h(shp[i].sh_size),
off += roundup(elfoff2h(shp[i].sh_size),
vaddr += roundup(elfoff2h(shp[i].sh_size),
if (lseek(ifd, elfoff2h(ehdr.e_phoff) + i *
elfoff2h(phdr.p_vaddr), letoh32(phdr.p_type),
elfoff2h(phdr.p_offset), elfoff2h(phdr.p_filesz),
elfoff2h(phdr.p_memsz));
vaddr = elfoff2h(phdr.p_vaddr);
else if (vaddr != elfoff2h(phdr.p_vaddr)) {
elfoff2h(phdr.p_vaddr));
elfoff2h(phdr.p_vaddr) - vaddr);
vaddr = elfoff2h(phdr.p_vaddr);
if (elfoff2h(phdr.p_filesz) != 0) {
elfoff2h(phdr.p_filesz), elfoff2h(phdr.p_offset));
if (esym >= elfoff2h(phdr.p_vaddr) &&
esym < elfoff2h(phdr.p_vaddr) +
elfoff2h(phdr.p_filesz)) {
elfoff2h(phdr.p_vaddr);
if (lseek(ifd, elfoff2h(phdr.p_offset),
if (lseek(ifd, elfoff2h(phdr.p_offset) +
ih, elfoff2h(phdr.p_filesz) - loadlen -
if (lseek(ifd, elfoff2h(phdr.p_offset),
ih, elfoff2h(phdr.p_filesz));
if (elfoff2h(phdr.p_memsz) - elfoff2h(phdr.p_filesz)
elfoff2h(phdr.p_memsz) -
elfoff2h(phdr.p_filesz));
elfoff2h(phdr.p_memsz) -
elfoff2h(phdr.p_filesz));
ovaddr = vaddr + elfoff2h(phdr.p_memsz);
vaddr += elfoff2h(phdr.p_memsz);
fprintf(stderr, "gap %p->%p\n", vaddr, elfoff2h(phdr.p_vaddr));
if (lseek(ifd, elfoff2h(shp[i].sh_offset), SEEK_SET)
off += elfoff2h(shp[i].sh_size);
vaddr += elfoff2h(shp[i].sh_size);
elfoff2h(shp[i].sh_size));
align = roundup(elfoff2h(shp[i].sh_size),
sizeof(Elf_Addr)) - elfoff2h(shp[i].sh_size);
if (lseek(ifd, (off_t)elfoff2h(elf.e_shoff), SEEK_SET) == -1)
if (lseek(ifd, elfoff2h(ehdr.e_phoff) + i *
vaddr = elfoff2h(phdr.p_vaddr) +
elfoff2h(phdr.p_memsz);