summaryrefslogtreecommitdiffstats
path: root/src/core/hle/hle.cpp
diff options
context:
space:
mode:
authorbunnei <ericbunnie@gmail.com>2014-06-14 18:13:16 +0200
committerbunnei <ericbunnie@gmail.com>2014-06-14 18:13:16 +0200
commit004df767953a949817da89bddcd5d1379240f769 (patch)
treeb2d54928dcbf3cb4dde0cd5d3277afe7999b7bd9 /src/core/hle/hle.cpp
parentGPU debugger: Const correctness and build fix. (diff)
parentKernel: Removed unnecessary "#pragma once". (diff)
downloadyuzu-004df767953a949817da89bddcd5d1379240f769.tar
yuzu-004df767953a949817da89bddcd5d1379240f769.tar.gz
yuzu-004df767953a949817da89bddcd5d1379240f769.tar.bz2
yuzu-004df767953a949817da89bddcd5d1379240f769.tar.lz
yuzu-004df767953a949817da89bddcd5d1379240f769.tar.xz
yuzu-004df767953a949817da89bddcd5d1379240f769.tar.zst
yuzu-004df767953a949817da89bddcd5d1379240f769.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/hle.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/core/hle/hle.cpp b/src/core/hle/hle.cpp
index 080c36abf..53cda4a61 100644
--- a/src/core/hle/hle.cpp
+++ b/src/core/hle/hle.cpp
@@ -7,6 +7,7 @@
#include "core/mem_map.h"
#include "core/hle/hle.h"
#include "core/hle/svc.h"
+#include "core/hle/kernel/thread.h"
#include "core/hle/service/service.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -15,11 +16,13 @@ namespace HLE {
static std::vector<ModuleDef> g_module_db;
+bool g_reschedule = false; ///< If true, immediately reschedules the CPU to a new thread
+
const FunctionDef* GetSVCInfo(u32 opcode) {
u32 func_num = opcode & 0xFFFFFF; // 8 bits
if (func_num > 0xFF) {
- ERROR_LOG(HLE,"Unknown SVC: 0x%02X", func_num);
- return NULL;
+ ERROR_LOG(HLE,"unknown svc=0x%02X", func_num);
+ return nullptr;
}
return &g_module_db[0].func_table[func_num];
}
@@ -33,19 +36,16 @@ void CallSVC(u32 opcode) {
if (info->func) {
info->func();
} else {
- ERROR_LOG(HLE, "Unimplemented SVC function %s(..)", info->name.c_str());
+ ERROR_LOG(HLE, "unimplemented SVC function %s(..)", info->name.c_str());
}
}
-void EatCycles(u32 cycles) {
- // TODO: ImplementMe
-}
-
-void ReSchedule(const char *reason) {
+void Reschedule(const char *reason) {
#ifdef _DEBUG
- _dbg_assert_msg_(HLE, reason != 0 && strlen(reason) < 256, "ReSchedule: Invalid or too long reason.");
+ _dbg_assert_msg_(HLE, reason != 0 && strlen(reason) < 256, "Reschedule: Invalid or too long reason.");
#endif
- // TODO: ImplementMe
+ Core::g_app_core->PrepareReschedule();
+ g_reschedule = true;
}
void RegisterModule(std::string name, int num_functions, const FunctionDef* func_table) {