symbols.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. {
  8. bool HasSymbol(u32 address)
  9. {
  10. return g_symbols.find(address) != g_symbols.end();
  11. }
  12. void Add(u32 address, const std::string& name, u32 size, u32 type)
  13. {
  14. if (!HasSymbol(address))
  15. {
  16. TSymbol symbol;
  17. symbol.address = address;
  18. symbol.name = name;
  19. symbol.size = size;
  20. symbol.type = type;
  21. g_symbols.emplace(address, symbol);
  22. }
  23. }
  24. TSymbol GetSymbol(u32 address)
  25. {
  26. const auto iter = g_symbols.find(address);
  27. if (iter != g_symbols.end())
  28. return iter->second;
  29. return {};
  30. }
  31. const std::string GetName(u32 address)
  32. {
  33. return GetSymbol(address).name;
  34. }
  35. void Remove(u32 address)
  36. {
  37. g_symbols.erase(address);
  38. }
  39. void Clear()
  40. {
  41. g_symbols.clear();
  42. }
  43. }