Home | History | Annotate | Download | only in libelf

Lines Matching refs:Elf

70 elf_getarsym (elf, ptr)
71 Elf *elf;
74 if (elf->kind != ELF_K_AR)
84 *ptr = elf->state.ar.ar_sym_num;
86 if (elf->state.ar.ar_sym == (Elf_Arsym *) -1l)
93 Elf_Arsym *result = elf->state.ar.ar_sym;
97 rwlock_wrlock (elf->lock);
100 elf->state.ar.ar_sym = (Elf_Arsym *) -1l;
103 if (elf->map_address == NULL)
106 assert (elf->fildes != -1);
107 if (pread_retry (elf->fildes, &elf->state.ar.ar_hdr,
108 sizeof (struct ar_hdr), elf->start_offset + SARMAG)
117 index_hdr = &elf->state.ar.ar_hdr;
121 if (SARMAG + sizeof (struct ar_hdr) > elf->maximum_size)
128 index_hdr = (struct ar_hdr *) (elf->map_address
129 + elf->start_offset + SARMAG);
156 if (elf->map_address == NULL)
158 if (pread_retry (elf->fildes, &n, sizeof (n),
159 elf->start_offset + SARMAG + sizeof (struct ar_hdr))
168 n = *(uint32_t *) (elf->map_address + elf->start_offset
181 if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
192 elf->state.ar.ar_sym = (Elf_Arsym *) malloc (ar_sym_len);
193 if (elf->state.ar.ar_sym != NULL)
198 if (elf->map_address == NULL)
203 Elf_Arsym *newp = (Elf_Arsym *) realloc (elf->state.ar.ar_sym,
207 free (elf->state.ar.ar_sym);
208 elf->state.ar.ar_sym = NULL;
212 elf->state.ar.ar_sym = newp;
214 char *new_str = (char *) (elf->state.ar.ar_sym + n + 1);
217 if ((size_t) pread_retry (elf->fildes, file_data,
219 elf->start_offset + SARMAG
223 || ((size_t) pread_retry (elf->fildes, new_str,
225 elf->start_offset
231 free (elf->state.ar.ar_sym);
232 elf->state.ar.ar_sym = NULL;
241 file_data = (uint32_t *) (elf->map_address + elf->start_offset
248 Elf_Arsym *arsym = elf->state.ar.ar_sym;
265 elf->state.ar.ar_sym_num = n + 1;
268 result = elf->state.ar.ar_sym;
271 rwlock_unlock (elf->lock);
275 *ptr = elf->state.ar.ar_sym_num;