symbols.cpp 931 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include "common/symbols.h"
  5. TSymbolsMap g_symbols;
  6. namespace Symbols {
  7. bool HasSymbol(u32 address) {
  8. return g_symbols.find(address) != g_symbols.end();
  9. }
  10. void Add(u32 address, const std::string& name, u32 size, u32 type) {
  11. if (!HasSymbol(address)) {
  12. TSymbol symbol;
  13. symbol.address = address;
  14. symbol.name = name;
  15. symbol.size = size;
  16. symbol.type = type;
  17. g_symbols.emplace(address, symbol);
  18. }
  19. }
  20. TSymbol GetSymbol(u32 address) {
  21. const auto iter = g_symbols.find(address);
  22. if (iter != g_symbols.end())
  23. return iter->second;
  24. return {};
  25. }
  26. const std::string GetName(u32 address) {
  27. return GetSymbol(address).name;
  28. }
  29. void Remove(u32 address) {
  30. g_symbols.erase(address);
  31. }
  32. void Clear() {
  33. g_symbols.clear();
  34. }
  35. }