Home
last modified time | relevance | path

Searched refs:ehdr (Results 1 – 25 of 76) sorted by relevance

1234

/Linux-v5.4/kernel/
Dkexec_elf.c24 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 …]
Dkexec_file.c840 sechdrs = (void *)pi->ehdr + pi->ehdr->e_shoff; in kexec_purgatory_setup_kbuf()
844 for (i = 0; i < pi->ehdr->e_shnum; i++) { in kexec_purgatory_setup_kbuf()
904 sechdrs = vzalloc(array_size(sizeof(Elf_Shdr), pi->ehdr->e_shnum)); in kexec_purgatory_setup_sechdrs()
907 memcpy(sechdrs, (void *)pi->ehdr + pi->ehdr->e_shoff, in kexec_purgatory_setup_sechdrs()
908 pi->ehdr->e_shnum * sizeof(Elf_Shdr)); in kexec_purgatory_setup_sechdrs()
913 kbuf->image->start = pi->ehdr->e_entry; in kexec_purgatory_setup_sechdrs()
915 for (i = 0; i < pi->ehdr->e_shnum; i++) { in kexec_purgatory_setup_sechdrs()
932 pi->ehdr->e_entry >= sechdrs[i].sh_addr && in kexec_purgatory_setup_sechdrs()
933 pi->ehdr->e_entry < (sechdrs[i].sh_addr in kexec_purgatory_setup_sechdrs()
939 src = (void *)pi->ehdr + sechdrs[i].sh_offset; in kexec_purgatory_setup_sechdrs()
[all …]
/Linux-v5.4/arch/s390/kernel/
Dkexec_elf.c20 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 …]
Dcrash_dump.c512 static void *ehdr_init(Elf64_Ehdr *ehdr, int mem_chunk_cnt) in ehdr_init() argument
514 memset(ehdr, 0, sizeof(*ehdr)); in ehdr_init()
515 memcpy(ehdr->e_ident, ELFMAG, SELFMAG); in ehdr_init()
516 ehdr->e_ident[EI_CLASS] = ELFCLASS64; in ehdr_init()
517 ehdr->e_ident[EI_DATA] = ELFDATA2MSB; in ehdr_init()
518 ehdr->e_ident[EI_VERSION] = EV_CURRENT; in ehdr_init()
519 memset(ehdr->e_ident + EI_PAD, 0, EI_NIDENT - EI_PAD); in ehdr_init()
520 ehdr->e_type = ET_CORE; in ehdr_init()
521 ehdr->e_machine = EM_S390; in ehdr_init()
522 ehdr->e_version = EV_CURRENT; in ehdr_init()
[all …]
/Linux-v5.4/arch/mips/boot/tools/
Drelocs.c14 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 …]
/Linux-v5.4/drivers/remoteproc/
Dremoteproc_elf_loader.c38 struct elf32_hdr *ehdr; local
51 ehdr = (struct elf32_hdr *)fw->data;
54 class = ehdr->e_ident[EI_CLASS];
62 if (ehdr->e_ident[EI_DATA] != ELFDATA2LSB) {
64 if (ehdr->e_ident[EI_DATA] != ELFDATA2MSB) {
70 if (fw->size < ehdr->e_shoff + sizeof(struct elf32_shdr)) {
75 if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG)) {
80 if (ehdr->e_phnum == 0) {
85 if (ehdr->e_phoff > fw->size) {
107 struct elf32_hdr *ehdr = (struct elf32_hdr *)fw->data; local
[all …]
/Linux-v5.4/tools/perf/util/
Dsymbol-minimal.c114 Elf32_Ehdr ehdr; in filename__read_build_id() local
117 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) in filename__read_build_id()
121 ehdr.e_phoff = bswap_32(ehdr.e_phoff); in filename__read_build_id()
122 ehdr.e_phentsize = bswap_16(ehdr.e_phentsize); in filename__read_build_id()
123 ehdr.e_phnum = bswap_16(ehdr.e_phnum); in filename__read_build_id()
126 buf_size = ehdr.e_phentsize * ehdr.e_phnum; in filename__read_build_id()
131 fseek(fp, ehdr.e_phoff, SEEK_SET); in filename__read_build_id()
135 for (i = 0, phdr = buf; i < ehdr.e_phnum; i++, phdr++) { in filename__read_build_id()
165 Elf64_Ehdr ehdr; in filename__read_build_id() local
168 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) in filename__read_build_id()
[all …]
Dsymbol-elf.c78 GElf_Ehdr *ehdr; in elf_getphdrnum() local
80 ehdr = gelf_getehdr(elf, &gehdr); in elf_getphdrnum()
81 if (!ehdr) in elf_getphdrnum()
84 *dst = ehdr->e_phnum; in elf_getphdrnum()
292 GElf_Ehdr ehdr; in dso__synthesize_plt_symbols() local
301 ehdr = ss->ehdr; in dso__synthesize_plt_symbols()
310 scn_plt_rel = elf_section_by_name(elf, &ehdr, &shdr_rel_plt, in dso__synthesize_plt_symbols()
313 scn_plt_rel = elf_section_by_name(elf, &ehdr, &shdr_rel_plt, in dso__synthesize_plt_symbols()
324 if (elf_section_by_name(elf, &ehdr, &shdr_plt, ".plt", NULL) == NULL) in dso__synthesize_plt_symbols()
352 switch (ehdr.e_machine) { in dso__synthesize_plt_symbols()
[all …]
/Linux-v5.4/scripts/
Drecordmcount.h177 static int append_func(Elf_Ehdr *const ehdr, in append_func() argument
191 unsigned const old_shnum = w2(ehdr->e_shnum); in append_func()
192 uint_t const old_shoff = _w(ehdr->e_shoff); in append_func()
207 if (uwrite(old_shstr_sh_offset + (void *)ehdr, old_shstr_sh_size) < 0) in append_func()
216 if (uwrite(old_shoff + (void *)ehdr, in append_func()
257 ehdr->e_shoff = _w(new_e_shoff); in append_func()
258 ehdr->e_shnum = w2(2 + w2(ehdr->e_shnum)); /* {.rel,}__mcount_loc */ in append_func()
261 if (uwrite(ehdr, sizeof(*ehdr)) < 0) in append_func()
289 Elf_Ehdr const *const ehdr, in get_sym_str_and_relp() argument
294 Elf_Shdr *const shdr0 = (Elf_Shdr *)(_w(ehdr->e_shoff) in get_sym_str_and_relp()
[all …]
Dsortextable.h91 do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort) in do_func() argument
115 shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff)); in do_func()
117 num_sections = r2(&ehdr->e_shnum); in do_func()
121 secindex_strings = r2(&ehdr->e_shstrndx); in do_func()
126 secstrtab = (const char *)ehdr + _r(&shstrtab_sec->sh_offset); in do_func()
136 relocs = (void *)ehdr + _r(&shdr[i].sh_offset); in do_func()
145 (const char *)ehdr + _r(&shdr[i].sh_offset)); in do_func()
155 symtab = (const Elf_Sym *)((const char *)ehdr + in do_func()
161 strtab = (const char *)ehdr + _r(&strtab_sec->sh_offset); in do_func()
163 extab_image = (void *)ehdr + _r(&extab_sec->sh_offset); in do_func()
[all …]
Dsortextable.c271 Elf32_Ehdr *ehdr = mmap_file(fname); in do_file() local
273 ehdr_curr = ehdr; in do_file()
274 switch (ehdr->e_ident[EI_DATA]) { in do_file()
277 ehdr->e_ident[EI_DATA], fname); in do_file()
297 if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0 in do_file()
298 || (r2(&ehdr->e_type) != ET_EXEC && r2(&ehdr->e_type) != ET_DYN) in do_file()
299 || ehdr->e_ident[EI_VERSION] != EV_CURRENT) { in do_file()
305 switch (r2(&ehdr->e_machine)) { in do_file()
308 r2(&ehdr->e_machine), fname); in do_file()
332 switch (ehdr->e_ident[EI_CLASS]) { in do_file()
[all …]
Drecordmcount.c457 Elf32_Ehdr *ehdr; in do_file() local
460 ehdr = mmap_file(fname); in do_file()
461 if (!ehdr) in do_file()
467 switch (ehdr->e_ident[EI_DATA]) { in do_file()
471 ehdr->e_ident[EI_DATA], fname); in do_file()
500 if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0 || in do_file()
501 w2(ehdr->e_type) != ET_REL || in do_file()
502 ehdr->e_ident[EI_VERSION] != EV_CURRENT) { in do_file()
508 switch (w2(ehdr->e_machine)) { in do_file()
511 w2(ehdr->e_machine), fname); in do_file()
[all …]
/Linux-v5.4/drivers/s390/crypto/
Dzcrypt_error.h82 struct error_hdr *ehdr = reply->message; in convert_error() local
86 switch (ehdr->reply_code) { in convert_error()
100 card, queue, ehdr->reply_code); in convert_error()
115 card, queue, ehdr->reply_code); in convert_error()
124 if (ehdr->type == TYPE86_RSP_CODE) { in convert_error()
133 card, queue, apfs, ehdr->reply_code); in convert_error()
137 card, queue, ehdr->reply_code); in convert_error()
148 card, queue, ehdr->reply_code); in convert_error()
156 card, queue, ehdr->reply_code); in convert_error()
/Linux-v5.4/arch/x86/tools/
Drelocs.c14 static Elf_Ehdr ehdr; variable
340 if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) { in read_ehdr()
344 if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) { in read_ehdr()
347 if (ehdr.e_ident[EI_CLASS] != ELF_CLASS) { in read_ehdr()
350 if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB) { in read_ehdr()
353 if (ehdr.e_ident[EI_VERSION] != EV_CURRENT) { in read_ehdr()
357 ehdr.e_type = elf_half_to_cpu(ehdr.e_type); in read_ehdr()
358 ehdr.e_machine = elf_half_to_cpu(ehdr.e_machine); in read_ehdr()
359 ehdr.e_version = elf_word_to_cpu(ehdr.e_version); in read_ehdr()
360 ehdr.e_entry = elf_addr_to_cpu(ehdr.e_entry); in read_ehdr()
[all …]
/Linux-v5.4/arch/mips/vdso/
Dgenvdso.h9 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()
Dgenvdso.c113 const Elf32_Ehdr *ehdr; in map_vdso() local
137 ehdr = addr; in map_vdso()
139 if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG) != 0) { in map_vdso()
145 elf_class = ehdr->e_ident[EI_CLASS]; in map_vdso()
156 switch (ehdr->e_ident[EI_DATA]) { in map_vdso()
159 need_swap = ehdr->e_ident[EI_DATA] != HOST_ORDER; in map_vdso()
167 if (swap_uint16(ehdr->e_machine) != EM_MIPS) { in map_vdso()
172 } else if (swap_uint16(ehdr->e_type) != ET_DYN) { in map_vdso()
/Linux-v5.4/drivers/soc/qcom/
Dmdt_loader.c44 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 …]
/Linux-v5.4/arch/parisc/boot/compressed/
Dmisc.c236 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()
/Linux-v5.4/tools/testing/selftests/powerpc/ptrace/
Dcore-pkey.c195 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 …]
/Linux-v5.4/arch/x86/boot/compressed/
Dmisc.c273 Elf64_Ehdr ehdr; in parse_elf() local
276 Elf32_Ehdr ehdr; in parse_elf()
282 memcpy(&ehdr, output, sizeof(ehdr)); in parse_elf()
283 if (ehdr.e_ident[EI_MAG0] != ELFMAG0 || in parse_elf()
284 ehdr.e_ident[EI_MAG1] != ELFMAG1 || in parse_elf()
285 ehdr.e_ident[EI_MAG2] != ELFMAG2 || in parse_elf()
286 ehdr.e_ident[EI_MAG3] != ELFMAG3) { in parse_elf()
293 phdrs = malloc(sizeof(*phdrs) * ehdr.e_phnum); in parse_elf()
297 memcpy(phdrs, output + ehdr.e_phoff, sizeof(*phdrs) * ehdr.e_phnum); in parse_elf()
299 for (i = 0; i < ehdr.e_phnum; i++) { in parse_elf()
/Linux-v5.4/arch/powerpc/oprofile/cell/
Dvma_map.c112 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()
/Linux-v5.4/tools/perf/arch/arm64/util/
Dsym-handling.c12 bool elf__needs_adjust_symbols(GElf_Ehdr ehdr) in elf__needs_adjust_symbols() argument
14 return ehdr.e_type == ET_EXEC || in elf__needs_adjust_symbols()
15 ehdr.e_type == ET_REL || in elf__needs_adjust_symbols()
16 ehdr.e_type == ET_DYN; in elf__needs_adjust_symbols()
/Linux-v5.4/arch/arm/kernel/
Dvdso.c109 static void * __init find_section(Elf32_Ehdr *ehdr, const char *name, in find_section() argument
117 sechdrs = (void *)ehdr + ehdr->e_shoff; in find_section()
118 secnames = (void *)ehdr + sechdrs[ehdr->e_shstrndx].sh_offset; in find_section()
121 for (i = 1; i < ehdr->e_shnum; i++) { in find_section()
125 return (void *)ehdr + sechdrs[i].sh_offset; in find_section()
165 static void __init patch_vdso(void *ehdr) in patch_vdso() argument
170 .hdr = ehdr, in patch_vdso()
/Linux-v5.4/arch/mips/kernel/
Delf.c81 } *ehdr = _ehdr; in arch_elf_pt_proc() local
90 elf32 = ehdr->e32.e_ident[EI_CLASS] == ELFCLASS32; in arch_elf_pt_proc()
91 flags = elf32 ? ehdr->e32.e_flags : ehdr->e64.e_flags; in arch_elf_pt_proc()
140 } *ehdr = _ehdr; in arch_check_elf() local
150 elf32 = ehdr->e32.e_ident[EI_CLASS] == ELFCLASS32; in arch_check_elf()
151 flags = elf32 ? ehdr->e32.e_flags : ehdr->e64.e_flags; in arch_check_elf()
/Linux-v5.4/fs/proc/
Dvmcore.c1191 Elf64_Ehdr ehdr; in parse_crash_elf64_headers() local
1197 rc = elfcorehdr_read((char *)&ehdr, sizeof(Elf64_Ehdr), &addr); in parse_crash_elf64_headers()
1202 if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0 || in parse_crash_elf64_headers()
1203 (ehdr.e_type != ET_CORE) || in parse_crash_elf64_headers()
1204 !vmcore_elf64_check_arch(&ehdr) || in parse_crash_elf64_headers()
1205 ehdr.e_ident[EI_CLASS] != ELFCLASS64 || in parse_crash_elf64_headers()
1206 ehdr.e_ident[EI_VERSION] != EV_CURRENT || in parse_crash_elf64_headers()
1207 ehdr.e_version != EV_CURRENT || in parse_crash_elf64_headers()
1208 ehdr.e_ehsize != sizeof(Elf64_Ehdr) || in parse_crash_elf64_headers()
1209 ehdr.e_phentsize != sizeof(Elf64_Phdr) || in parse_crash_elf64_headers()
[all …]

1234