Lines Matching defs:ref
1045 dup_elf (int fildes, Elf_Cmd cmd, Elf *ref)
1051 fildes = ref->fildes;
1054 else if (unlikely (ref->fildes != -1 && fildes != ref->fildes))
1063 if (unlikely (ref->cmd != ELF_C_READ && ref->cmd != ELF_C_READ_MMAP
1064 && ref->cmd != ELF_C_WRITE && ref->cmd != ELF_C_WRITE_MMAP
1065 && ref->cmd != ELF_C_RDWR && ref->cmd != ELF_C_RDWR_MMAP
1066 && ref->cmd != ELF_C_READ_MMAP_PRIVATE))
1075 if (ref->kind != ELF_K_AR)
1077 ++ref->ref_count;
1078 return ref;
1085 if (ref->state.ar.elf_ar_hdr.ar_name == NULL
1086 && __libelf_next_arhdr_wrlock (ref) != 0)
1092 result = read_file (fildes, ref->state.ar.offset + sizeof (struct ar_hdr),
1093 ref->state.ar.elf_ar_hdr.ar_size, cmd, ref);
1098 result->next = ref->state.ar.children;
1099 ref->state.ar.children = result;
1135 lock_dup_elf (int fildes, Elf_Cmd cmd, Elf *ref)
1138 if (ref->kind == ELF_K_AR)
1140 rwlock_unlock (ref->lock);
1141 rwlock_wrlock (ref->lock);
1144 return dup_elf (fildes, cmd, ref);
1149 elf_begin (int fildes, Elf_Cmd cmd, Elf *ref)
1160 if (ref != NULL)
1162 rwlock_rdlock (ref->lock);
1179 if (unlikely (ref != NULL && ref->cmd != ELF_C_READ_MMAP_PRIVATE))
1189 if (ref != NULL)
1190 retval = lock_dup_elf (fildes, cmd, ref);
1200 if (ref != NULL)
1202 if (unlikely (ref->cmd != ELF_C_RDWR && ref->cmd != ELF_C_RDWR_MMAP
1203 && ref->cmd != ELF_C_WRITE
1204 && ref->cmd != ELF_C_WRITE_MMAP))
1211 retval = lock_dup_elf (fildes, cmd, ref);
1231 if (ref != NULL)
1232 rwlock_unlock (ref->lock);