Lines Matching refs:elf

53 	register Elf	*elf;  in _elf_member()  local
79 if ((elf = (Elf *)calloc(1, sizeof (Elf))) == 0) { in _elf_member()
84 elf->ed_parent = ref; in _elf_member()
85 elf->ed_fd = fd; in _elf_member()
86 elf->ed_myflags |= flags; in _elf_member()
87 elf->ed_armem = mh; in _elf_member()
88 elf->ed_fsz = mh->m_hdr.ar_size; in _elf_member()
89 elf->ed_baseoff = ref->ed_baseoff + base; in _elf_member()
90 elf->ed_memoff = base - mh->m_slide; in _elf_member()
91 elf->ed_siboff = base + elf->ed_fsz + (elf->ed_fsz & 1); in _elf_member()
92 ref->ed_nextoff = elf->ed_siboff; in _elf_member()
93 elf->ed_image = ref->ed_image; in _elf_member()
94 elf->ed_imagesz = ref->ed_imagesz; in _elf_member()
95 elf->ed_vm = ref->ed_vm; in _elf_member()
96 elf->ed_vmsz = ref->ed_vmsz; in _elf_member()
97 elf->ed_ident = ref->ed_ident + base - mh->m_slide; in _elf_member()
105 elf->ed_status = ES_COOKED; in _elf_member()
106 return (elf); in _elf_member()
113 Elf *elf; in _elf_regular() local
115 if ((elf = (Elf *)calloc(1, sizeof (Elf))) == 0) { in _elf_regular()
120 NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*elf)) in _elf_regular()
121 elf->ed_fd = fd; in _elf_regular()
122 elf->ed_myflags |= flags; in _elf_regular()
123 if (_elf_inmap(elf) != OK_YES) { in _elf_regular()
124 free(elf); in _elf_regular()
127 NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*elf)) in _elf_regular()
128 return (elf); in _elf_regular()
133 _elf_config(Elf * elf) in _elf_config() argument
138 ELFRWLOCKINIT(&elf->ed_rwlock); in _elf_config()
143 base = elf->ed_ident; in _elf_config()
144 if ((elf->ed_fsz >= EI_NIDENT) && in _elf_config()
145 (_elf_vm(elf, (size_t)0, (size_t)EI_NIDENT) == OK_YES) && in _elf_config()
150 elf->ed_kind = ELF_K_ELF; in _elf_config()
151 elf->ed_class = base[EI_CLASS]; in _elf_config()
152 elf->ed_encode = base[EI_DATA]; in _elf_config()
153 if ((elf->ed_version = base[EI_VERSION]) == 0) in _elf_config()
154 elf->ed_version = 1; in _elf_config()
155 elf->ed_identsz = EI_NIDENT; in _elf_config()
163 if ((elf->ed_vm == 0) && ((elf->ed_myflags & EDF_WRITE) == 0) && in _elf_config()
164 (elf->ed_encode != encode)) { in _elf_config()
165 if (mprotect((char *)elf->ed_image, elf->ed_imagesz, in _elf_config()
171 return (elf); in _elf_config()
177 if ((elf->ed_fsz >= SARMAG) && in _elf_config()
178 (_elf_vm(elf, (size_t)0, (size_t)SARMAG) == OK_YES) && in _elf_config()
180 _elf_arinit(elf); in _elf_config()
181 elf->ed_kind = ELF_K_AR; in _elf_config()
182 elf->ed_identsz = SARMAG; in _elf_config()
183 return (elf); in _elf_config()
191 elf->ed_kind = ELF_K_NONE; in _elf_config()
192 if ((elf->ed_identsz = elf->ed_fsz) > 512) in _elf_config()
193 elf->ed_identsz = 512; in _elf_config()
195 return (elf); in _elf_config()
201 Elf *elf; in elf_memory() local
213 if ((elf = (Elf *)calloc(1, sizeof (Elf))) == 0) { in elf_memory()
217 NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*elf)) in elf_memory()
218 elf->ed_fd = -1; in elf_memory()
219 elf->ed_myflags |= EDF_READ | EDF_MEMORY; in elf_memory()
220 elf->ed_image = elf->ed_ident = image; in elf_memory()
221 elf->ed_imagesz = elf->ed_fsz = elf->ed_identsz = sz; in elf_memory()
222 elf->ed_kind = ELF_K_ELF; in elf_memory()
223 elf->ed_class = image[EI_CLASS]; in elf_memory()
224 elf->ed_encode = image[EI_DATA]; in elf_memory()
225 if ((elf->ed_version = image[EI_VERSION]) == 0) in elf_memory()
226 elf->ed_version = 1; in elf_memory()
227 elf->ed_identsz = EI_NIDENT; in elf_memory()
228 elf->ed_activ = 1; in elf_memory()
229 elf = _elf_config(elf); in elf_memory()
230 NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*elf)) in elf_memory()
231 return (elf); in elf_memory()
302 register Elf *elf; in elf_begin() local
336 if ((elf = (Elf *)calloc(1, sizeof (Elf))) == 0) { in elf_begin()
340 NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*elf)) in elf_begin()
341 ELFRWLOCKINIT(&elf->ed_rwlock); in elf_begin()
342 elf->ed_fd = fd; in elf_begin()
343 elf->ed_activ = 1; in elf_begin()
344 elf->ed_myflags |= EDF_WRITE; in elf_begin()
346 elf->ed_myflags |= EDF_WRALLOC; in elf_begin()
347 NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*elf)) in elf_begin()
348 return (elf); in elf_begin()
365 if ((elf = _elf_regular(fd, flags)) == 0) in elf_begin()
382 if ((elf = _elf_member(fd, ref, flags)) == 0) { in elf_begin()
389 NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*elf)) in elf_begin()
390 elf->ed_activ = 1; in elf_begin()
391 elf = _elf_config(elf); in elf_begin()
392 NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*elf)) in elf_begin()
394 return (elf); in elf_begin()