GET_LE
secstrings_hdr = raw_addr + GET_LE(&hdr->e_shoff) +
GET_LE(&hdr->e_shentsize)*GET_LE(&hdr->e_shstrndx);
secstrings = raw_addr + GET_LE(&secstrings_hdr->sh_offset);
for (i = 0; i < GET_LE(&hdr->e_shnum); i++) {
ELF(Shdr) *sh = raw_addr + GET_LE(&hdr->e_shoff) +
GET_LE(&hdr->e_shentsize) * i;
if (GET_LE(&sh->sh_type) == SHT_SYMTAB)
if (!strcmp(secstrings + GET_LE(&sh->sh_name),
if (!strcmp(secstrings + GET_LE(&sh->sh_name), "__ex_table"))
strtab_hdr = raw_addr + GET_LE(&hdr->e_shoff) +
GET_LE(&hdr->e_shentsize) * GET_LE(&symtab_hdr->sh_link);
syms_nr = GET_LE(&symtab_hdr->sh_size) / GET_LE(&symtab_hdr->sh_entsize);
ELF(Sym) *sym = raw_addr + GET_LE(&symtab_hdr->sh_offset) +
GET_LE(&symtab_hdr->sh_entsize) * i;
GET_LE(&strtab_hdr->sh_offset) +
GET_LE(&sym->st_name);
syms[k] = GET_LE(&sym->st_value);
(unsigned long)GET_LE(&alt_sec->sh_offset));
(unsigned long)GET_LE(&alt_sec->sh_size));
(unsigned long)GET_LE(&extable_sec->sh_offset));
(unsigned long)GET_LE(&extable_sec->sh_size));
offset = (unsigned long)GET_LE(&sec->sh_offset);
len = (size_t)GET_LE(&sec->sh_size);
ELF(Phdr) *pt = (ELF(Phdr) *)(raw_addr + GET_LE(&hdr->e_phoff));
if (GET_LE(&hdr->e_type) != ET_DYN)
for (i = 0; i < GET_LE(&hdr->e_phnum); i++) {
if (GET_LE(&pt[i].p_type) == PT_LOAD) {
if (GET_LE(&pt[i].p_offset) != 0 ||
GET_LE(&pt[i].p_vaddr) != 0)
if (GET_LE(&pt[i].p_memsz) != GET_LE(&pt[i].p_filesz))
load_size = GET_LE(&pt[i].p_memsz);
} else if (GET_LE(&pt[i].p_type) == PT_DYNAMIC) {
dyn = raw_addr + GET_LE(&pt[i].p_offset);
dyn_end = raw_addr + GET_LE(&pt[i].p_offset) +
GET_LE(&pt[i].p_memsz);
GET_LE(&dyn[i].d_tag) != DT_NULL; i++) {
typeof(dyn[i].d_tag) tag = GET_LE(&dyn[i].d_tag);