Home | History | Annotate | Download | only in libelf

Lines Matching refs:elf

1 /* Create new ELF program header table.
34 elfw2(LIBELFBITS,newphdr) (elf, count)
35 Elf *elf;
40 if (elf == NULL)
43 if (unlikely (elf->kind != ELF_K_ELF))
49 rwlock_wrlock (elf->lock);
51 if (elf->class == 0)
52 elf->class = ELFW(ELFCLASS,LIBELFBITS);
53 else if (unlikely (elf->class != ELFW(ELFCLASS,LIBELFBITS)))
60 if (unlikely (elf->state.ELFW(elf,LIBELFBITS).ehdr == NULL))
71 if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL)
73 if (elf->state.ELFW(elf,LIBELFBITS).phdr_flags & ELF_F_MALLOCED)
74 free (elf->state.ELFW(elf,LIBELFBITS).phdr);
77 elf->state.ELFW(elf,LIBELFBITS).phdr = NULL;
79 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum = 0;
81 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize =
84 elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_DIRTY;
85 elf->flags |= ELF_F_DIRTY;
91 else if (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum != count
92 || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
97 realloc (elf->state.ELFW(elf,LIBELFBITS).phdr,
104 elf->state.ELFW(elf,LIBELFBITS).phdr = result;
108 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum = count;
110 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize =
114 elf->state.ELFW(elf,LIBELFBITS).phdr_flags |=
118 elf->flags |= ELF_F_DIRTY;
124 assert (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize
128 elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_DIRTY;
130 result = elf->state.ELFW(elf,LIBELFBITS).phdr;
134 rwlock_unlock (elf->lock);