33 #ifndef COMMON_LINUX_ELFUTILS_H__ 34 #define COMMON_LINUX_ELFUTILS_H__ 51 typedef Elf32_Off
Off;
53 static const int kClass = ELFCLASS32;
64 typedef Elf64_Off
Off;
66 static const int kClass = ELFCLASS64;
79 const char *section_name,
80 uint32_t section_type,
81 const void **section_start,
87 template<
typename ElfClass>
88 const typename ElfClass::Shdr*
90 typename ElfClass::Word section_type,
91 const typename ElfClass::Shdr* sections,
92 const char* section_names,
93 const char* names_end,
102 uint32_t segment_type,
103 const void **segment_start,
111 template<
typename ElfClass,
typename T>
113 GetOffset(
const typename ElfClass::Ehdr* elf_header,
114 typename ElfClass::Off offset);
118 #endif // COMMON_LINUX_ELFUTILS_H__
const T * GetOffset(const typename ElfClass::Ehdr *elf_header, typename ElfClass::Off offset)
static const size_t kAddrSize
bool FindElfSegment(const void *elf_mapped_base, uint32_t segment_type, const void **segment_start, int *segment_size, int *elfclass)
bool IsValidElf(const void *elf_header)
int ElfClass(const void *elf_base)
const ElfClass::Shdr * FindElfSectionByName(const char *name, typename ElfClass::Word section_type, const typename ElfClass::Shdr *sections, const char *section_names, const char *names_end, int nsection)
bool FindElfSection(const void *elf_mapped_base, const char *section_name, uint32_t section_type, const void **section_start, int *section_size, int *elfclass)