Lines Matching refs:elf
42 set_address (Elf *elf, size_t offset)
44 if (elf->kind == ELF_K_AR)
46 Elf *child = elf->state.ar.children;
52 child->map_address = elf->map_address;
68 __libelf_readall (Elf *elf)
71 rwlock_wrlock (elf->lock);
73 if (elf->map_address == NULL && unlikely (elf->fildes == -1))
76 rwlock_unlock (elf->lock);
81 if (elf->map_address == NULL)
87 libelf_acquire_all (elf);
89 if (elf->maximum_size == ~((size_t) 0))
94 if (fstat (elf->fildes, &st) < 0)
99 elf->maximum_size = (size_t) st.st_size;
108 mem = malloc (elf->maximum_size);
112 if (unlikely ((size_t) pread_retry (elf->fildes, mem,
113 elf->maximum_size,
114 elf->start_offset)
115 != elf->maximum_size))
125 elf->map_address = mem;
128 elf->flags |= ELF_F_MALLOCED;
132 set_address (elf, elf->start_offset);
135 if (elf->kind == ELF_K_AR)
136 elf->state.ar.offset -= elf->start_offset;
137 elf->start_offset = 0;
144 libelf_release_all (elf);
147 rwlock_unlock (elf->lock);
149 return (char *) elf->map_address;