123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * Copyright (C) 2013, Imagination Technologies Ltd.
- *
- * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
- static __always_inline int
- __dl_is_special_segment (Elf32_Ehdr *epnt,
- Elf32_Phdr *ppnt)
- {
- if (ppnt->p_type != PT_LOAD &&
- ppnt->p_type != PT_DYNAMIC)
- return 0;
- if (ppnt->p_vaddr >= 0x80000000 &&
- ppnt->p_vaddr < 0x82060000)
- return 1;
- if (ppnt->p_vaddr >= 0xe0200000 &&
- ppnt->p_vaddr < 0xe0260000)
- return 1;
- return 0;
- }
- static __always_inline char *
- __dl_map_segment (Elf32_Ehdr *epnt,
- Elf32_Phdr *ppnt,
- int infile,
- int flags)
- {
- char *addr = (char *)ppnt->p_vaddr;
- if (_DL_PREAD (infile, addr, ppnt->p_filesz, ppnt->p_offset) != ppnt->p_filesz) {
- return 0;
- }
- return addr;
- }
|