Lines Matching refs:obj

59     Obj_Entry *obj;  in map_object()  local
277 obj = obj_new(); in map_object()
279 obj->dev = sb->st_dev; in map_object()
280 obj->ino = sb->st_ino; in map_object()
282 obj->mapbase = mapbase; in map_object()
283 obj->mapsize = mapsize; in map_object()
284 obj->textsize = round_page(segs[0]->p_vaddr + segs[0]->p_memsz) - in map_object()
286 obj->vaddrbase = base_vaddr; in map_object()
287 obj->relocbase = mapbase - base_vaddr; in map_object()
288 obj->dynamic = (const Elf_Dyn *)(obj->relocbase + phdyn->p_vaddr); in map_object()
290 obj->entry = (caddr_t)(obj->relocbase + hdr->e_entry); in map_object()
292 obj->phdr = (const Elf_Phdr *)(obj->relocbase + phdr_vaddr); in map_object()
294 obj->phdr = malloc(phsize); in map_object()
295 if (obj->phdr == NULL) { in map_object()
296 obj_free(obj); in map_object()
300 memcpy(__DECONST(char *, obj->phdr), (char *)hdr + hdr->e_phoff, phsize); in map_object()
301 obj->phdr_alloc = true; in map_object()
303 obj->phsize = phsize; in map_object()
305 obj->interp = (const char *)(obj->relocbase + phinterp->p_vaddr); in map_object()
308 obj->tlsindex = ++tls_max_index; in map_object()
309 obj->tlssize = phtls->p_memsz; in map_object()
310 obj->tlsalign = phtls->p_align; in map_object()
311 obj->tlsinitsize = phtls->p_filesz; in map_object()
312 obj->tlsinit = mapbase + phtls->p_vaddr; in map_object()
314 obj->stack_flags = stack_flags; in map_object()
315 obj->relro_page = obj->relocbase + trunc_page(relro_page); in map_object()
316 obj->relro_size = round_page(relro_size); in map_object()
318 digest_notes(obj, note_start, note_end); in map_object()
322 return (obj); in map_object()
398 obj_free(Obj_Entry *obj) in obj_free() argument
402 if (obj->tls_done) in obj_free()
403 free_tls_offset(obj); in obj_free()
404 while (obj->needed != NULL) { in obj_free()
405 Needed_Entry *needed = obj->needed; in obj_free()
406 obj->needed = needed->next; in obj_free()
409 while (!STAILQ_EMPTY(&obj->names)) { in obj_free()
410 Name_Entry *entry = STAILQ_FIRST(&obj->names); in obj_free()
411 STAILQ_REMOVE_HEAD(&obj->names, link); in obj_free()
414 while (!STAILQ_EMPTY(&obj->dldags)) { in obj_free()
415 elm = STAILQ_FIRST(&obj->dldags); in obj_free()
416 STAILQ_REMOVE_HEAD(&obj->dldags, link); in obj_free()
419 while (!STAILQ_EMPTY(&obj->dagmembers)) { in obj_free()
420 elm = STAILQ_FIRST(&obj->dagmembers); in obj_free()
421 STAILQ_REMOVE_HEAD(&obj->dagmembers, link); in obj_free()
424 if (obj->vertab) in obj_free()
425 free(obj->vertab); in obj_free()
426 if (obj->origin_path) in obj_free()
427 free(obj->origin_path); in obj_free()
428 if (obj->z_origin) in obj_free()
429 free(__DECONST(void*, obj->rpath)); in obj_free()
430 if (obj->priv) in obj_free()
431 free(obj->priv); in obj_free()
432 if (obj->path) in obj_free()
433 free(obj->path); in obj_free()
434 if (obj->phdr_alloc) in obj_free()
435 free(__DECONST(void *, obj->phdr)); in obj_free()
436 free(obj); in obj_free()
442 Obj_Entry *obj; in obj_new() local
444 obj = CNEW(Obj_Entry); in obj_new()
445 STAILQ_INIT(&obj->dldags); in obj_new()
446 STAILQ_INIT(&obj->dagmembers); in obj_new()
447 STAILQ_INIT(&obj->names); in obj_new()
448 return obj; in obj_new()