Lines Matching refs:elf
14 #include <binaries/elf/elf.h>
81 static void unpack_elf_to_paddr(void *elf, paddr_t dest_paddr)
90 elf_getMemoryBounds(elf, 0, &min_vaddr, &max_vaddr);
98 for (i = 0; i < elf_getNumProgramHeaders(elf); i++) {
103 if (elf_getProgramHeaderType(elf, i) != PT_LOAD) {
108 dest_vaddr = elf_getProgramHeaderVaddr(elf, i);
109 data_size = elf_getProgramHeaderFileSize(elf, i);
110 data_offset = elf_getProgramHeaderOffset(elf, i);
114 (char *)elf + data_offset, data_size);
118 static size_t rounded_image_size(void *elf, uint64_t *min_vaddr, uint64_t *max_vaddr)
120 elf_getMemoryBounds(elf, 0, min_vaddr, max_vaddr);
130 static paddr_t load_elf(const char *name, void *elf, paddr_t dest_paddr,
137 size_t image_size = rounded_image_size(elf, &min_vaddr, &max_vaddr);
182 get_hash(hashes, elf, size, calculated_hash);
201 printf(" virt_entry=%lx\n", (vaddr_t)elf_getEntryPoint(elf));
204 if (elf_checkFile(elf) != 0) {
219 unpack_elf_to_paddr(elf, dest_paddr);
226 info->virt_entry = (vaddr_t)elf_getEntryPoint(elf);
234 uint32_t phnum = elf_getNumProgramHeaders(elf);
237 if (ISELF32(elf)) {
238 phsize = ((struct Elf32_Header *)elf)->e_phentsize;
239 source_paddr = (paddr_t)elf32_getProgramHeaderTable(elf);
241 phsize = ((struct Elf64_Header *)elf)->e_phentsize;
242 source_paddr = (paddr_t)elf64_getProgramHeaderTable(elf);
300 void *kernel_elf = cpio_get_file(_archive_start, cpio_len, "kernel.elf", &kernel_filesize);
378 if (strcmp(elf_filename, "kernel.elf") != 0) {