summaryrefslogtreecommitdiff
path: root/src/core/arm/disassembler
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2014-05-08 17:16:35 -0400
committerbunnei <bunneidev@gmail.com>2014-05-08 17:16:35 -0400
commitbdc54d0d4897841a4d24aee80311bfb1f0eba884 (patch)
tree558d87c83fe8f7e8e3e57644407c872244ee5a3a /src/core/arm/disassembler
parentd4bf68b6503129fc32639c2fdbe98df8d5855d66 (diff)
parentb39cd3a64c69792ffd720ffa6e0f5fe35740a087 (diff)
Merge pull request #15 from bunnei/hle-services
Various fixes/improvements to HLE of 3DS services, mostly cleans up GSP call decoding
Diffstat (limited to 'src/core/arm/disassembler')
-rw-r--r--src/core/arm/disassembler/load_symbol_map.cpp33
-rw-r--r--src/core/arm/disassembler/load_symbol_map.h13
2 files changed, 46 insertions, 0 deletions
diff --git a/src/core/arm/disassembler/load_symbol_map.cpp b/src/core/arm/disassembler/load_symbol_map.cpp
new file mode 100644
index 000000000..d7fc0a042
--- /dev/null
+++ b/src/core/arm/disassembler/load_symbol_map.cpp
@@ -0,0 +1,33 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2
+// Refer to the license.txt file included.
+
+#include <string>
+#include <vector>
+
+#include "common/symbols.h"
+#include "common/common_types.h"
+#include "common/file_util.h"
+
+#include "core/arm/disassembler/load_symbol_map.h"
+
+/*
+ * Loads a symbol map file for use with the disassembler
+ * @param filename String filename path of symbol map file
+ */
+void LoadSymbolMap(std::string filename) {
+ std::ifstream infile(filename);
+
+ std::string address_str, function_name, line;
+ u32 size, address;
+
+ while (std::getline(infile, line)) {
+ std::istringstream iss(line);
+ if (!(iss >> address_str >> size >> function_name)) {
+ break; // Error parsing
+ }
+ u32 address = std::stoul(address_str, nullptr, 16);
+
+ Symbols::Add(address, function_name, size, 2);
+ }
+}
diff --git a/src/core/arm/disassembler/load_symbol_map.h b/src/core/arm/disassembler/load_symbol_map.h
new file mode 100644
index 000000000..837cca99b
--- /dev/null
+++ b/src/core/arm/disassembler/load_symbol_map.h
@@ -0,0 +1,13 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <string>
+
+/*
+ * Loads a symbol map file for use with the disassembler
+ * @param filename String filename path of symbol map file
+ */
+void LoadSymbolMap(std::string filename);