Lines Matching refs:adp
189 Ar_desc * adp; in ld_ar_setup() local
212 if ((adp = libld_malloc(sizeof (Ar_desc))) == NULL) in ld_ar_setup()
214 adp->ad_name = name; in ld_ar_setup()
215 adp->ad_elf = elf; in ld_ar_setup()
216 adp->ad_start = start; in ld_ar_setup()
218 adp->ad_aux = libld_calloc(sizeof (Ar_aux), number); in ld_ar_setup()
219 if (adp->ad_aux == NULL) in ld_ar_setup()
222 adp->ad_aux = NULL; in ld_ar_setup()
229 adp->ad_flags = ofl->ofl_flags1 & MSK_OF1_ARCHIVE; in ld_ar_setup()
236 if (aplist_append(&ofl->ofl_ars, adp, AL_CNT_OFL_LIBS) == NULL) in ld_ar_setup()
239 return (adp); in ld_ar_setup()
269 ld_ar_member(Ar_desc * adp, Elf_Arsym * arsym, Ar_aux * aup, Ar_mem * amp) in ld_ar_member() argument
275 if (adp->ad_start == NULL) in ld_ar_member()
287 if (_arsym != adp->ad_start) { in ld_ar_member()
294 } while (_arsym != adp->ad_start); in ld_ar_member()
378 ar_input(int fd, Ar_desc *adp, Ofl_desc *ofl, Elf *arelf, in ar_input() argument
409 adp->ad_flags |= FLG_ARD_EXTRACT; in ar_input()
453 ar_extract_bysym(const char *name, int fd, Ar_desc *adp, in ar_extract_bysym() argument
472 if (adp->ad_start == NULL) { in ar_extract_bysym()
473 assert(adp->ad_start != NULL); in ar_extract_bysym()
489 for (arsym = adp->ad_start, aup = adp->ad_aux; arsym->as_name; in ar_extract_bysym()
586 if (elf_rand(adp->ad_elf, arsym->as_off) != in ar_extract_bysym()
596 adp->ad_elf)) == NULL) { in ar_extract_bysym()
619 &arelf, adp->ad_elf, arsym->as_off, in ar_extract_bysym()
672 ld_ar_member(adp, arsym, in ar_extract_bysym()
684 switch (ar_input(fd, adp, ofl, arelf, arpath, in ar_extract_bysym()
693 ld_ar_member(adp, arsym, aup, FLG_ARMEM_PROC); in ar_extract_bysym()
704 ld_ar_member(adp, arsym, aup, FLG_ARMEM_PROC); in ar_extract_bysym()
730 ar_extract_all(const char *name, int fd, Ar_desc *adp, Ofl_desc *ofl, in ar_extract_all() argument
740 while ((arelf = elf_begin(fd, cmd, adp->ad_elf)) != NULL) { in ar_extract_all()
773 next_off = _elf_getnextoff(adp->ad_elf); in ar_extract_all()
784 (FLG_IF_EXTRACT | FLG_IF_NEEDED), &arelf, adp->ad_elf, in ar_extract_all()
786 (void) elf_rand(adp->ad_elf, next_off); in ar_extract_all()
791 switch (ar_input(fd, adp, ofl, arelf, arpath, rej)) { in ar_extract_all()
807 (void) elf_end(adp->ad_elf); in ar_extract_all()
808 adp->ad_elf = NULL; in ar_extract_all()
828 ld_process_archive(const char *name, int fd, Ar_desc *adp, Ofl_desc *ofl) in ld_process_archive() argument
849 if (adp->ad_elf == NULL) in ld_process_archive()
853 if (!ar_extract_all(name, fd, adp, ofl, &found, &rej)) in ld_process_archive()
856 if (!ar_extract_bysym(name, fd, adp, ofl, &found, &rej)) in ld_process_archive()