summaryrefslogtreecommitdiff
path: root/src/common/symbols.cpp
diff options
context:
space:
mode:
authorGravatar Mathieu Vaillancourt2014-04-12 18:57:58 -0400
committerGravatar Mathieu Vaillancourt2014-04-12 19:04:31 -0400
commitd046cfbba1dd2bcdad4ace3be706dadf3f6cc288 (patch)
treed880f04c199bd08751b4f30a4eee5939d56e06cd /src/common/symbols.cpp
parentFixed GPLv2 license issue (diff)
downloadyuzu-d046cfbba1dd2bcdad4ace3be706dadf3f6cc288.tar.gz
yuzu-d046cfbba1dd2bcdad4ace3be706dadf3f6cc288.tar.xz
yuzu-d046cfbba1dd2bcdad4ace3be706dadf3f6cc288.zip
Add symbols map
Diffstat (limited to 'src/common/symbols.cpp')
-rw-r--r--src/common/symbols.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/common/symbols.cpp b/src/common/symbols.cpp
new file mode 100644
index 000000000..dcc9eeac5
--- /dev/null
+++ b/src/common/symbols.cpp
@@ -0,0 +1,57 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2
3// Refer to the license.txt file included.
4
5#include "common/symbols.h"
6
7TSymbolsMap g_symbols;
8
9namespace Symbols
10{
11 bool HasSymbol(u32 _address)
12 {
13 return g_symbols.find(_address) != g_symbols.end();
14 }
15
16 void Add(u32 _address, const std::string& _name, u32 _size, u32 _type)
17 {
18 if (!HasSymbol(_address))
19 {
20 TSymbol symbol;
21 symbol.address = _address;
22 symbol.name = _name;
23 symbol.size = _size;
24 symbol.type = _type;
25
26 g_symbols.insert(TSymbolsPair(_address, symbol));
27 }
28 }
29
30 TSymbol GetSymbol(u32 _address)
31 {
32 TSymbolsMap::iterator foundSymbolItr;
33 TSymbol symbol;
34
35 foundSymbolItr = g_symbols.find(_address);
36 if (foundSymbolItr != g_symbols.end())
37 {
38 symbol = (*foundSymbolItr).second;
39 }
40
41 return symbol;
42 }
43 const std::string& GetName(u32 _address)
44 {
45 return GetSymbol(_address).name;
46 }
47
48 void Remove(u32 _address)
49 {
50 g_symbols.erase(_address);
51 }
52
53 void Clear()
54 {
55 g_symbols.clear();
56 }
57} \ No newline at end of file