Lines Matching defs:elf

52  *	An elf descriptor has a bit array to manage this.  Each bit
87 _elf_vm(Elf * elf, size_t base, size_t sz)
89 NOTE(ASSUMING_PROTECTED(*elf))
101 if ((base + sz) > elf->ed_fsz) {
113 if (elf->ed_vm == 0 || sz == 0)
123 if (elf->ed_parent && elf->ed_parent->ed_fd == -1)
124 elf->ed_fd = -1;
126 base += elf->ed_baseoff;
131 hdreg = &elf->ed_vm[REGNUM(base)];
132 tlreg = &elf->ed_vm[REGNUM(tail)];
149 * Read in a 'chunk' of the elf image.
151 iop = (Elf_Void *)(elf->ed_image + off);
155 if (elf->ed_imagesz - off < sz)
156 sz = elf->ed_imagesz - off;
157 if ((lseek(elf->ed_fd, off,
159 (read(elf->ed_fd, iop, sz) != sz)) {
168 if (elf->ed_fd < 0) {
183 iop = (Elf_Void *)(elf->ed_image + off);
187 if ((elf->ed_imagesz - off) < sz)
188 sz = elf->ed_imagesz - off;
189 if ((lseek(elf->ed_fd, off, SEEK_SET) != off) ||
190 (read(elf->ed_fd, iop, sz) != sz)) {
200 _elf_inmap(Elf * elf)
202 int fd = elf->ed_fd;
222 * If the file is mapped, elf->ed_vm will stay null
223 * and elf->ed_image will need to be unmapped someday.
224 * If the file is read, elf->ed_vm and the file image
225 * are allocated together; free() elf->ed_vm.
240 if ((elf->ed_myflags & EDF_WRITE) == 0 &&
243 elf->ed_image = elf->ed_ident = p;
244 elf->ed_imagesz = elf->ed_fsz = elf->ed_identsz = sz;
260 if ((elf->ed_vm = (unsigned *)malloc(vmsz + sz)) == 0) {
264 (void) memset(elf->ed_vm, 0, vmsz);
265 elf->ed_vmsz = vmsz / sizeof (unsigned);
266 elf->ed_image = elf->ed_ident = (char *)elf->ed_vm + vmsz;
267 elf->ed_imagesz = elf->ed_fsz = elf->ed_identsz = sz;
269 return (_elf_vm(elf, (size_t)0, (size_t)1));