Lines Matching refs:elf
1 /* Create new ELF program header table.
67 elfw2(LIBELFBITS,newphdr) (elf, count)
68 Elf *elf;
73 if (elf == NULL)
76 if (unlikely (elf->kind != ELF_K_ELF))
82 rwlock_wrlock (elf->lock);
84 if (elf->class == 0)
85 elf->class = ELFW(ELFCLASS,LIBELFBITS);
86 else if (unlikely (elf->class != ELFW(ELFCLASS,LIBELFBITS)))
93 if (unlikely (elf->state.ELFW(elf,LIBELFBITS).ehdr == NULL))
104 if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL)
106 if (elf->state.ELFW(elf,LIBELFBITS).phdr_flags & ELF_F_MALLOCED)
107 free (elf->state.ELFW(elf,LIBELFBITS).phdr);
110 elf->state.ELFW(elf,LIBELFBITS).phdr = NULL;
112 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum = 0;
114 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize =
117 elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_DIRTY;
118 elf->flags |= ELF_F_DIRTY;
124 else if (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum != count
125 || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
130 realloc (elf->state.ELFW(elf,LIBELFBITS).phdr,
137 elf->state.ELFW(elf,LIBELFBITS).phdr = result;
141 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum = count;
143 elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize =
147 elf->state.ELFW(elf,LIBELFBITS).phdr_flags |=
151 elf->flags |= ELF_F_DIRTY;
157 assert (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phentsize
161 elf->state.ELFW(elf,LIBELFBITS).phdr_flags |= ELF_F_DIRTY;
163 result = elf->state.ELFW(elf,LIBELFBITS).phdr;
167 rwlock_unlock (elf->lock);