Lines Matching defs:elf

112 _elf_slide(Elf * elf)
114 NOTE(ASSUMING_PROTECTED(*elf))
115 Elf *par = elf->ed_parent;
118 register char *src = elf->ed_ident;
127 if (elf->ed_ident[EI_CLASS] == ELFCLASS64)
131 if ((sz = (size_t)(src - (char *)elf->ed_image) % szof) == 0)
134 elf->ed_ident -= sz;
135 elf->ed_memoff -= sz;
136 elf->ed_armem->m_slide = sz;
137 if (_elf_vm(par, elf->ed_memoff, sz + elf->ed_fsz) != OK_YES)
145 if ((elf->ed_vm == 0) && ((elf->ed_myflags & EDF_WRITE) == 0) &&
146 ((elf->ed_myflags & EDF_MPROTECT) == 0)) {
147 if (mprotect((char *)elf->ed_image, elf->ed_imagesz,
152 elf->ed_myflags |= EDF_MPROTECT;
155 if (memmove((void *)dst, (const void *)src, elf->ed_fsz) != (void *)dst)
163 _elf_cook(Elf * elf)
165 NOTE(ASSUMING_PROTECTED(*elf))
168 if (elf->ed_kind != ELF_K_ELF)
171 if ((elf->ed_status == ES_COOKED) ||
172 ((elf->ed_myflags & EDF_READ) == 0))
178 if (elf->ed_status == ES_FRESH && _elf_slide(elf) != 0)
181 if (elf->ed_status == ES_FROZEN)
193 if (elf->ed_ident[EI_CLASS] == ELFCLASS32) {
194 if (_elf32_ehdr(elf, inplace) != 0)
196 if (_elf32_phdr(elf, inplace) != 0)
198 if (_elf32_shdr(elf, inplace) != 0)
200 elf->ed_class = ELFCLASS32;
201 } else if (elf->ed_ident[EI_CLASS] == ELFCLASS64) {
202 if (_elf64_ehdr(elf, inplace) != 0)
204 if (_elf64_phdr(elf, inplace) != 0)
206 if (_elf64_shdr(elf, inplace) != 0)
208 elf->ed_class = ELFCLASS64;
215 if (elf->ed_myflags & EDF_PHALLOC) {
216 elf->ed_myflags &= ~EDF_PHALLOC;
217 free(elf->ed_phdr);
219 elf->ed_phdr = 0;
221 if (elf->ed_myflags & EDF_EHALLOC) {
222 elf->ed_myflags &= ~EDF_EHALLOC;
223 free(elf->ed_ehdr);
225 elf->ed_ehdr = 0;
234 Elf * elf = s->s_elf;
236 if (elf->ed_class == ELFCLASS32) {
238 } else if (elf->ed_class == ELFCLASS64) {