#ifndef SRC_PROFILING_SYMBOLIZER_ELF_H_
#define SRC_PROFILING_SYMBOLIZER_ELF_H_
#include <stddef.h>
#include <cinttypes>
#include "perfetto/base/build_config.h"
namespace perfetto {
namespace profiling {
constexpr auto PT_LOAD = …;
constexpr auto PF_X = …;
constexpr auto SHT_NOTE = …;
constexpr auto NT_GNU_BUILD_ID = …;
constexpr auto ELFCLASS32 = …;
constexpr auto ELFCLASS64 = …;
constexpr auto ELFMAG0 = …;
constexpr auto ELFMAG1 = …;
constexpr auto ELFMAG2 = …;
constexpr auto ELFMAG3 = …;
constexpr auto ELFDATA2LSB = …;
constexpr auto EV_CURRENT = …;
constexpr auto EI_MAG0 = …;
constexpr auto EI_MAG1 = …;
constexpr auto EI_MAG2 = …;
constexpr auto EI_MAG3 = …;
constexpr auto EI_CLASS = …;
constexpr auto EI_DATA = …;
constexpr auto EI_VERSION = …;
struct Elf32 { … };
struct Elf64 { … };
template <typename E>
typename E::Shdr* GetShdr(void* mem, const typename E::Ehdr* ehdr, size_t i) { … }
template <typename E>
typename E::Phdr* GetPhdr(void* mem, const typename E::Ehdr* ehdr, size_t i) { … }
}
}
#endif