Lines Matching defs:ref

51 _elf_member(int fd, Elf * ref, unsigned flags)
57 if (ref->ed_nextoff >= ref->ed_fsz)
59 if (ref->ed_fd == -1) /* disabled */
65 if (ref->ed_fd != fd) {
69 if ((_elf_vm(ref, ref->ed_nextoff, sizeof (struct ar_hdr)) !=
70 OK_YES) || ((mh = _elf_armem(ref,
71 ref->ed_ident + ref->ed_nextoff, ref->ed_fsz)) == 0))
74 base = ref->ed_nextoff + sizeof (struct ar_hdr);
75 if (ref->ed_fsz - base < mh->m_hdr.ar_size) {
83 ++ref->ed_activ;
84 elf->ed_parent = ref;
89 elf->ed_baseoff = ref->ed_baseoff + base;
92 ref->ed_nextoff = elf->ed_siboff;
93 elf->ed_image = ref->ed_image;
94 elf->ed_imagesz = ref->ed_imagesz;
95 elf->ed_vm = ref->ed_vm;
96 elf->ed_vmsz = ref->ed_vmsz;
97 elf->ed_ident = ref->ed_ident + base - mh->m_slide;
104 if (ref->ed_arstroff == ref->ed_nextoff)
238 * elf_begin(0, ELF_C_IMAGE, ref)
240 * ref as the base image of the elf file. Before this elf_begin()
241 * is called an elf_update(ref, ELF_C_WRIMAGE) must have been
242 * done to the ref elf descriptor.
250 * NOTE: if an elf_update(ref, ELF_C_WRITE) is done on the ref Elf
300 elf_begin(int fd, Elf_Cmd cmd, Elf *ref)
321 if (ref) {
324 ELFRLOCK(ref);
325 if ((image = ref->ed_wrimage) == 0) {
327 ELFUNLOCK(ref);
330 imagesz = ref->ed_wrimagesz;
331 ELFUNLOCK(ref);
359 * A null ref asks for a new file
360 * Non-null ref bumps the activation count
364 if (ref == 0) {
368 ELFWLOCK(ref);
369 if ((ref->ed_myflags & flags) != flags) {
371 ELFUNLOCK(ref);
377 if (ref->ed_kind != ELF_K_AR) {
378 ++ref->ed_activ;
379 ELFUNLOCK(ref);
380 return (ref);
382 if ((elf = _elf_member(fd, ref, flags)) == 0) {
383 ELFUNLOCK(ref);
386 ELFUNLOCK(ref);