OSDN Git Service

Simpleperf: check value returned by fopen.
[android-x86/system-extras.git] / simpleperf / read_elf.h
index bc65fea..cfb13be 100644 (file)
 #ifndef SIMPLE_PERF_READ_ELF_H_
 #define SIMPLE_PERF_READ_ELF_H_
 
+#include <functional>
 #include <string>
 #include "build_id.h"
 
 bool GetBuildIdFromNoteFile(const std::string& filename, BuildId* build_id);
 bool GetBuildIdFromElfFile(const std::string& filename, BuildId* build_id);
 
+// The symbol prefix used to indicate that the symbol belongs to android linker.
+static const std::string linker_prefix = "__dl_";
+
+struct ElfFileSymbol {
+  uint64_t vaddr;
+  uint64_t len;
+  bool is_func;
+  bool is_label;
+  bool is_in_text_section;
+  std::string name;
+};
+
+bool ParseSymbolsFromElfFile(const std::string& filename, const BuildId& expected_build_id,
+                             std::function<void(const ElfFileSymbol&)> callback);
+
+bool ReadMinExecutableVirtualAddressFromElfFile(const std::string& filename,
+                                                const BuildId& expected_build_id,
+                                                uint64_t* min_addr);
+
+// Expose the following functions for unit tests.
+bool IsArmMappingSymbol(const char* name);
+bool IsValidElfPath(const std::string& filename);
+
 #endif  // SIMPLE_PERF_READ_ELF_H_