| /OK3568_Linux_fs/kernel/kernel/ |
| H A D | kexec_elf.c | 24 static inline bool elf_is_elf_file(const struct elfhdr *ehdr) in elf_is_elf_file() argument 26 return memcmp(ehdr->e_ident, ELFMAG, SELFMAG) == 0; in elf_is_elf_file() 29 static uint64_t elf64_to_cpu(const struct elfhdr *ehdr, uint64_t value) in elf64_to_cpu() argument 31 if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB) in elf64_to_cpu() 33 else if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB) in elf64_to_cpu() 39 static uint32_t elf32_to_cpu(const struct elfhdr *ehdr, uint32_t value) in elf32_to_cpu() argument 41 if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB) in elf32_to_cpu() 43 else if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB) in elf32_to_cpu() 49 static uint16_t elf16_to_cpu(const struct elfhdr *ehdr, uint16_t value) in elf16_to_cpu() argument 51 if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB) in elf16_to_cpu() [all …]
|
| H A D | kexec_file.c | 822 sechdrs = (void *)pi->ehdr + pi->ehdr->e_shoff; in kexec_purgatory_setup_kbuf() 826 for (i = 0; i < pi->ehdr->e_shnum; i++) { in kexec_purgatory_setup_kbuf() 886 sechdrs = vzalloc(array_size(sizeof(Elf_Shdr), pi->ehdr->e_shnum)); in kexec_purgatory_setup_sechdrs() 889 memcpy(sechdrs, (void *)pi->ehdr + pi->ehdr->e_shoff, in kexec_purgatory_setup_sechdrs() 890 pi->ehdr->e_shnum * sizeof(Elf_Shdr)); in kexec_purgatory_setup_sechdrs() 895 kbuf->image->start = pi->ehdr->e_entry; in kexec_purgatory_setup_sechdrs() 897 for (i = 0; i < pi->ehdr->e_shnum; i++) { in kexec_purgatory_setup_sechdrs() 914 pi->ehdr->e_entry >= sechdrs[i].sh_addr && in kexec_purgatory_setup_sechdrs() 915 pi->ehdr->e_entry < (sechdrs[i].sh_addr in kexec_purgatory_setup_sechdrs() 921 src = (void *)pi->ehdr + sechdrs[i].sh_offset; in kexec_purgatory_setup_sechdrs() [all …]
|
| /OK3568_Linux_fs/kernel/arch/s390/kernel/ |
| H A D | kexec_elf.c | 20 const Elf_Ehdr *ehdr; in kexec_file_add_kernel_elf() local 27 ehdr = (Elf_Ehdr *)kernel; in kexec_file_add_kernel_elf() 32 entry = ehdr->e_entry; in kexec_file_add_kernel_elf() 34 phdr = (void *)ehdr + ehdr->e_phoff; in kexec_file_add_kernel_elf() 35 for (i = 0; i < ehdr->e_phnum; i++, phdr++) { in kexec_file_add_kernel_elf() 71 const Elf_Ehdr *ehdr; in s390_elf_load() local 77 ehdr = (Elf_Ehdr *)kernel; in s390_elf_load() 79 if (ehdr->e_type != ET_EXEC || in s390_elf_load() 80 ehdr->e_ident[EI_CLASS] != ELFCLASS64 || in s390_elf_load() 81 !elf_check_arch(ehdr)) in s390_elf_load() [all …]
|
| /OK3568_Linux_fs/kernel/arch/mips/boot/tools/ |
| H A D | relocs.c | 14 static Elf_Ehdr ehdr; variable 96 sec_strtab = secs[ehdr.e_shstrndx].strtab; in sec_name() 97 if (shndx < ehdr.e_shnum) in sec_name() 112 for (i = 0; i < ehdr.e_shnum; i++) in sec_lookup() 163 if (ehdr.e_ident[EI_DATA] == ELFDATA2LSB) in elf16_to_cpu() 171 if (ehdr.e_ident[EI_DATA] == ELFDATA2LSB) in elf32_to_cpu() 179 if (ehdr.e_ident[EI_DATA] == ELFDATA2LSB) in cpu_to_elf32() 191 if (ehdr.e_ident[EI_DATA] == ELFDATA2LSB) in elf64_to_cpu() 207 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) in read_ehdr() 210 if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) in read_ehdr() [all …]
|
| /OK3568_Linux_fs/kernel/tools/perf/util/ |
| H A D | symbol-minimal.c | 116 Elf32_Ehdr ehdr; in filename__read_build_id() local 119 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) in filename__read_build_id() 123 ehdr.e_phoff = bswap_32(ehdr.e_phoff); in filename__read_build_id() 124 ehdr.e_phentsize = bswap_16(ehdr.e_phentsize); in filename__read_build_id() 125 ehdr.e_phnum = bswap_16(ehdr.e_phnum); in filename__read_build_id() 128 buf_size = ehdr.e_phentsize * ehdr.e_phnum; in filename__read_build_id() 133 fseek(fp, ehdr.e_phoff, SEEK_SET); in filename__read_build_id() 137 for (i = 0, phdr = buf; i < ehdr.e_phnum; i++, phdr++) { in filename__read_build_id() 167 Elf64_Ehdr ehdr; in filename__read_build_id() local 170 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) in filename__read_build_id() [all …]
|
| H A D | symbol-elf.c | 80 GElf_Ehdr *ehdr; in elf_getphdrnum() local 82 ehdr = gelf_getehdr(elf, &gehdr); in elf_getphdrnum() 83 if (!ehdr) in elf_getphdrnum() 86 *dst = ehdr->e_phnum; in elf_getphdrnum() 321 GElf_Ehdr ehdr; in dso__synthesize_plt_symbols() local 330 ehdr = ss->ehdr; in dso__synthesize_plt_symbols() 339 scn_plt_rel = elf_section_by_name(elf, &ehdr, &shdr_rel_plt, in dso__synthesize_plt_symbols() 342 scn_plt_rel = elf_section_by_name(elf, &ehdr, &shdr_rel_plt, in dso__synthesize_plt_symbols() 353 if (elf_section_by_name(elf, &ehdr, &shdr_plt, ".plt", NULL) == NULL) in dso__synthesize_plt_symbols() 381 switch (ehdr.e_machine) { in dso__synthesize_plt_symbols() [all …]
|
| /OK3568_Linux_fs/kernel/scripts/ |
| H A D | recordmcount.h | 211 static unsigned int get_shnum(Elf_Ehdr const *ehdr, Elf_Shdr const *shdr0) in get_shnum() argument 213 if (shdr0 && !ehdr->e_shnum) in get_shnum() 216 return w2(ehdr->e_shnum); in get_shnum() 219 static void set_shnum(Elf_Ehdr *ehdr, Elf_Shdr *shdr0, unsigned int new_shnum) in set_shnum() argument 222 ehdr->e_shnum = 0; in set_shnum() 225 ehdr->e_shnum = w2(new_shnum); in set_shnum() 228 static int get_shstrndx(Elf_Ehdr const *ehdr, Elf_Shdr const *shdr0) in get_shstrndx() argument 230 if (ehdr->e_shstrndx != SHN_XINDEX) in get_shstrndx() 231 return w2(ehdr->e_shstrndx); in get_shstrndx() 236 static void find_symtab(Elf_Ehdr *const ehdr, Elf_Shdr const *shdr0, in find_symtab() argument [all …]
|
| H A D | sorttable.c | 300 Elf32_Ehdr *ehdr = addr; in do_file() local 303 switch (ehdr->e_ident[EI_DATA]) { in do_file() 322 ehdr->e_ident[EI_DATA], fname); in do_file() 326 if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0 || in do_file() 327 (r2(&ehdr->e_type) != ET_EXEC && r2(&ehdr->e_type) != ET_DYN) || in do_file() 328 ehdr->e_ident[EI_VERSION] != EV_CURRENT) { in do_file() 333 switch (r2(&ehdr->e_machine)) { in do_file() 356 r2(&ehdr->e_machine), fname); in do_file() 360 switch (ehdr->e_ident[EI_CLASS]) { in do_file() 362 if (r2(&ehdr->e_ehsize) != sizeof(Elf32_Ehdr) || in do_file() [all …]
|
| H A D | sorttable.h | 195 static int do_sort(Elf_Ehdr *ehdr, in do_sort() argument 200 Elf_Shdr *s, *shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff)); in do_sort() 226 shstrndx = r2(&ehdr->e_shstrndx); in do_sort() 229 secstrings = (const char *)ehdr + _r(&shdr[shstrndx].sh_offset); in do_sort() 231 shnum = r2(&ehdr->e_shnum); in do_sort() 249 relocs = (void *)ehdr + _r(&s->sh_offset); in do_sort() 253 symtab_shndx = (Elf32_Word *)((const char *)ehdr + in do_sort() 260 g_orc_ip_table = (int *)((void *)ehdr + in do_sort() 265 g_orc_table = (struct orc_entry *)((void *)ehdr + in do_sort() 312 extab_image = (void *)ehdr + _r(&extab_sec->sh_offset); in do_sort() [all …]
|
| H A D | recordmcount.c | 480 Elf32_Ehdr *ehdr; in do_file() local 483 ehdr = mmap_file(fname); in do_file() 484 if (!ehdr) in do_file() 490 switch (ehdr->e_ident[EI_DATA]) { in do_file() 494 ehdr->e_ident[EI_DATA], fname); in do_file() 523 if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0 || in do_file() 524 w2(ehdr->e_type) != ET_REL || in do_file() 525 ehdr->e_ident[EI_VERSION] != EV_CURRENT) { in do_file() 531 switch (w2(ehdr->e_machine)) { in do_file() 534 w2(ehdr->e_machine), fname); in do_file() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/remoteproc/ |
| H A D | remoteproc_coredump.c | 239 void *ehdr; in rproc_coredump() local 275 ehdr = data; in rproc_coredump() 277 memset(ehdr, 0, elf_size_of_hdr(class)); in rproc_coredump() 279 elf_hdr_init_ident(ehdr, class); in rproc_coredump() 281 elf_hdr_set_e_type(class, ehdr, ET_CORE); in rproc_coredump() 282 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine); in rproc_coredump() 283 elf_hdr_set_e_version(class, ehdr, EV_CURRENT); in rproc_coredump() 284 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr); in rproc_coredump() 285 elf_hdr_set_e_phoff(class, ehdr, elf_size_of_hdr(class)); in rproc_coredump() 286 elf_hdr_set_e_ehsize(class, ehdr, elf_size_of_hdr(class)); in rproc_coredump() [all …]
|
| H A D | remoteproc_elf_loader.c | 44 struct elf32_hdr *ehdr; local 60 ehdr = (struct elf32_hdr *)fw->data; 62 if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG)) { 67 class = ehdr->e_ident[EI_CLASS]; 80 if (ehdr->e_ident[EI_DATA] != ELFDATA2LSB) { 82 if (ehdr->e_ident[EI_DATA] != ELFDATA2MSB) { 159 const void *ehdr, *phdr; local 166 ehdr = elf_data; 167 phnum = elf_hdr_get_e_phnum(class, ehdr); 168 phdr = elf_data + elf_hdr_get_e_phoff(class, ehdr); [all …]
|
| /OK3568_Linux_fs/kernel/drivers/soc/rockchip/minidump/ |
| H A D | rk_minidump.c | 58 struct elfhdr *ehdr; member 90 char *strtab = elf_str_table(minidump_elfheader.ehdr); in set_section_name() 150 struct elfhdr *hdr = minidump_elfheader.ehdr; in md_update_ss_toc() 220 struct elfhdr *hdr = minidump_elfheader.ehdr; in rk_minidump_update_region() 325 struct elfhdr *hdr = minidump_elfheader.ehdr; in rk_minidump_clear_headers() 464 rk_md_flush_dcache_area((void *)minidump_elfheader.ehdr, minidump_table.md_regions[0].region_size); in rk_minidump_flush_elfheader() 470 struct elfhdr *ehdr; in rk_minidump_add_header() local 485 elfh_size = sizeof(*ehdr) + MAX_STRTBL_SIZE + in rk_minidump_add_header() 492 minidump_elfheader.ehdr = kzalloc(elfh_size, GFP_KERNEL); in rk_minidump_add_header() 493 if (!minidump_elfheader.ehdr) in rk_minidump_add_header() [all …]
|
| /OK3568_Linux_fs/kernel/arch/x86/tools/ |
| H A D | relocs.c | 14 static Elf_Ehdr ehdr; variable 341 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) { in read_ehdr() 345 if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) { in read_ehdr() 348 if (ehdr.e_ident[EI_CLASS] != ELF_CLASS) { in read_ehdr() 351 if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB) { in read_ehdr() 354 if (ehdr.e_ident[EI_VERSION] != EV_CURRENT) { in read_ehdr() 358 ehdr.e_type = elf_half_to_cpu(ehdr.e_type); in read_ehdr() 359 ehdr.e_machine = elf_half_to_cpu(ehdr.e_machine); in read_ehdr() 360 ehdr.e_version = elf_word_to_cpu(ehdr.e_version); in read_ehdr() 361 ehdr.e_entry = elf_addr_to_cpu(ehdr.e_entry); in read_ehdr() [all …]
|
| /OK3568_Linux_fs/u-boot/cmd/ |
| H A D | elf.c | 32 Elf32_Ehdr *ehdr; /* Elf header structure pointer */ in load_elf_image_phdr() local 36 ehdr = (Elf32_Ehdr *)addr; in load_elf_image_phdr() 37 phdr = (Elf32_Phdr *)(addr + ehdr->e_phoff); in load_elf_image_phdr() 40 for (i = 0; i < ehdr->e_phnum; ++i) { in load_elf_image_phdr() 54 return ehdr->e_entry; in load_elf_image_phdr() 59 Elf32_Ehdr *ehdr; /* Elf header structure pointer */ in load_elf_image_shdr() local 65 ehdr = (Elf32_Ehdr *)addr; in load_elf_image_shdr() 68 shdr = (Elf32_Shdr *)(addr + ehdr->e_shoff + in load_elf_image_shdr() 69 (ehdr->e_shstrndx * sizeof(Elf32_Shdr))); in load_elf_image_shdr() 75 for (i = 0; i < ehdr->e_shnum; ++i) { in load_elf_image_shdr() [all …]
|
| /OK3568_Linux_fs/kernel/crypto/ |
| H A D | fips140_gen_hmac.c | 28 static Elf64_Ehdr *ehdr; variable 70 return (void *)ehdr + shdr[syms[i].st_shndx].sh_offset + in get_sym_addr() 152 ehdr = mmap(0, stat.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); in main() 153 if (ehdr == MAP_FAILED) { in main() 158 shdr = (void *)ehdr + ehdr->e_shoff; in main() 159 num_shdr = ehdr->e_shnum; in main() 163 syms = (void *)ehdr + symtab_shdr->sh_offset; in main() 166 strtab = (void *)ehdr + shdr[symtab_shdr->sh_link].sh_offset; in main() 167 shstrtab = (void *)ehdr + shdr[ehdr->e_shstrndx].sh_offset; in main()
|
| /OK3568_Linux_fs/kernel/arch/mips/vdso/ |
| H A D | genvdso.h | 9 const ELF(Ehdr) *ehdr = vdso; in FUNC() 15 shdrs = vdso + FUNC(swap_uint)(ehdr->e_shoff); in FUNC() 16 sh_count = swap_uint16(ehdr->e_shnum); in FUNC() 17 sh_entsize = swap_uint16(ehdr->e_shentsize); in FUNC() 19 shdr = shdrs + (sh_entsize * swap_uint16(ehdr->e_shstrndx)); in FUNC() 60 const ELF(Ehdr) *ehdr = vdso; in FUNC() 69 shdrs = vdso + FUNC(swap_uint)(ehdr->e_shoff); in FUNC() 70 sh_count = swap_uint16(ehdr->e_shnum); in FUNC() 71 sh_entsize = swap_uint16(ehdr->e_shentsize); in FUNC() 87 flags = swap_uint32(ehdr->e_flags); in FUNC()
|
| /OK3568_Linux_fs/kernel/drivers/s390/crypto/ |
| H A D | zcrypt_error.h | 81 struct error_hdr *ehdr = reply->msg; in convert_error() local 85 switch (ehdr->reply_code) { in convert_error() 103 card, queue, ehdr->reply_code); in convert_error() 114 if (ehdr->reply_code == REP82_ERROR_TRANSPORT_FAIL && in convert_error() 115 ehdr->type == TYPE86_RSP_CODE) { in convert_error() 124 card, queue, ehdr->reply_code, apfs); in convert_error() 128 card, queue, ehdr->reply_code); in convert_error() 134 card, queue, ehdr->reply_code); in convert_error()
|
| /OK3568_Linux_fs/kernel/arch/arm64/kvm/hyp/nvhe/ |
| H A D | gen-hyprel.c | 134 Elf64_Ehdr *ehdr; member 202 for (var = elf.sh_table; var < elf.sh_table + elf16toh(elf.ehdr->e_shnum); ++var) 276 assert_ge(stat.st_size, sizeof(*elf.ehdr), "%lu"); in init_elf() 277 elf.ehdr = elf_ptr(Elf64_Ehdr, 0); in init_elf() 280 assert_eq(elf.ehdr->e_ident[EI_MAG0], ELFMAG0, "0x%x"); in init_elf() 281 assert_eq(elf.ehdr->e_ident[EI_MAG1], ELFMAG1, "0x%x"); in init_elf() 282 assert_eq(elf.ehdr->e_ident[EI_MAG2], ELFMAG2, "0x%x"); in init_elf() 283 assert_eq(elf.ehdr->e_ident[EI_MAG3], ELFMAG3, "0x%x"); in init_elf() 286 assert_eq(elf.ehdr->e_ident[EI_CLASS], ELFCLASS64, "%u"); in init_elf() 287 assert_eq(elf.ehdr->e_ident[EI_DATA], ELFENDIAN, "%u"); in init_elf() [all …]
|
| /OK3568_Linux_fs/kernel/arch/parisc/boot/compressed/ |
| H A D | misc.c | 236 Elf64_Ehdr ehdr; in parse_elf() local 239 Elf32_Ehdr ehdr; in parse_elf() 245 memcpy(&ehdr, output, sizeof(ehdr)); in parse_elf() 246 if (ehdr.e_ident[EI_MAG0] != ELFMAG0 || in parse_elf() 247 ehdr.e_ident[EI_MAG1] != ELFMAG1 || in parse_elf() 248 ehdr.e_ident[EI_MAG2] != ELFMAG2 || in parse_elf() 249 ehdr.e_ident[EI_MAG3] != ELFMAG3) { in parse_elf() 258 phdrs = malloc(sizeof(*phdrs) * ehdr.e_phnum); in parse_elf() 262 memcpy(phdrs, output + ehdr.e_phoff, sizeof(*phdrs) * ehdr.e_phnum); in parse_elf() 264 for (i = 0; i < ehdr.e_phnum; i++) { in parse_elf()
|
| /OK3568_Linux_fs/kernel/drivers/soc/qcom/ |
| H A D | mdt_loader.c | 44 const struct elf32_hdr *ehdr; in qcom_mdt_get_size() local 49 ehdr = (struct elf32_hdr *)fw->data; in qcom_mdt_get_size() 50 phdrs = (struct elf32_phdr *)(ehdr + 1); in qcom_mdt_get_size() 52 for (i = 0; i < ehdr->e_phnum; i++) { in qcom_mdt_get_size() 89 const struct elf32_hdr *ehdr; in qcom_mdt_read_metadata() local 95 ehdr = (struct elf32_hdr *)fw->data; in qcom_mdt_read_metadata() 96 phdrs = (struct elf32_phdr *)(ehdr + 1); in qcom_mdt_read_metadata() 98 if (ehdr->e_phnum < 2) in qcom_mdt_read_metadata() 136 const struct elf32_hdr *ehdr; in __qcom_mdt_load() local 154 ehdr = (struct elf32_hdr *)fw->data; in __qcom_mdt_load() [all …]
|
| /OK3568_Linux_fs/kernel/tools/testing/selftests/powerpc/ptrace/ |
| H A D | core-pkey.c | 195 static int check_core_file(struct shared_info *info, Elf64_Ehdr *ehdr, in check_core_file() argument 202 void *p = ehdr, *note; in check_core_file() 205 ret = memcmp(ehdr->e_ident, ELFMAG, SELFMAG); in check_core_file() 208 FAIL_IF(ehdr->e_type != ET_CORE); in check_core_file() 209 FAIL_IF(ehdr->e_machine != EM_PPC64); in check_core_file() 210 FAIL_IF(ehdr->e_phoff == 0 || ehdr->e_phnum == 0); in check_core_file() 216 phdr_size = sizeof(*phdr) * ehdr->e_phnum; in check_core_file() 219 FAIL_IF(ehdr->e_phoff + phdr_size < ehdr->e_phoff); in check_core_file() 220 FAIL_IF(ehdr->e_phoff + phdr_size > core_size); in check_core_file() 223 for (phdr = p + ehdr->e_phoff; in check_core_file() [all …]
|
| /OK3568_Linux_fs/kernel/arch/x86/boot/compressed/ |
| H A D | misc.c | 274 Elf64_Ehdr ehdr; in parse_elf() local 277 Elf32_Ehdr ehdr; in parse_elf() 283 memcpy(&ehdr, output, sizeof(ehdr)); in parse_elf() 284 if (ehdr.e_ident[EI_MAG0] != ELFMAG0 || in parse_elf() 285 ehdr.e_ident[EI_MAG1] != ELFMAG1 || in parse_elf() 286 ehdr.e_ident[EI_MAG2] != ELFMAG2 || in parse_elf() 287 ehdr.e_ident[EI_MAG3] != ELFMAG3) { in parse_elf() 294 phdrs = malloc(sizeof(*phdrs) * ehdr.e_phnum); in parse_elf() 298 memcpy(phdrs, output + ehdr.e_phoff, sizeof(*phdrs) * ehdr.e_phnum); in parse_elf() 300 for (i = 0; i < ehdr.e_phnum; i++) { in parse_elf()
|
| /OK3568_Linux_fs/kernel/arch/powerpc/oprofile/cell/ |
| H A D | vma_map.c | 112 Elf32_Ehdr ehdr; in create_vma_map() local 128 if (copy_from_user(&ehdr, spu_elf_start, sizeof (ehdr))) in create_vma_map() 131 if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) { in create_vma_map() 137 if (ehdr.e_machine != EM_SPU) { in create_vma_map() 143 if (ehdr.e_type != ET_EXEC) { in create_vma_map() 149 phdr_start = spu_elf_start + ehdr.e_phoff; in create_vma_map() 150 shdr_start = spu_elf_start + ehdr.e_shoff; in create_vma_map() 153 for (i = 0; i < ehdr.e_phnum; i++) { in create_vma_map() 170 for (i = 0; i < ehdr.e_shnum; i++) { in create_vma_map()
|
| /OK3568_Linux_fs/kernel/arch/arm/kernel/ |
| H A D | vdso.c | 113 static void * __init find_section(Elf32_Ehdr *ehdr, const char *name, in find_section() argument 121 sechdrs = (void *)ehdr + ehdr->e_shoff; in find_section() 122 secnames = (void *)ehdr + sechdrs[ehdr->e_shstrndx].sh_offset; in find_section() 125 for (i = 1; i < ehdr->e_shnum; i++) { in find_section() 129 return (void *)ehdr + sechdrs[i].sh_offset; in find_section() 169 static void __init patch_vdso(void *ehdr) in patch_vdso() argument 174 .hdr = ehdr, in patch_vdso()
|