mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Move ThreadContext to core/core.h and deal with the fallout
This commit is contained in:
		@@ -5,6 +5,8 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
 | 
			
		||||
#include "core/arm/arm_interface.h"
 | 
			
		||||
#include "core/mem_map.h"
 | 
			
		||||
#include "core/hle/hle.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@
 | 
			
		||||
 | 
			
		||||
#include <vector>
 | 
			
		||||
 | 
			
		||||
#include "core/arm/arm_interface.h"
 | 
			
		||||
#include "core/mem_map.h"
 | 
			
		||||
#include "core/hle/hle.h"
 | 
			
		||||
#include "core/hle/kernel/thread.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,8 @@
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@
 | 
			
		||||
 | 
			
		||||
#include "common/common.h"
 | 
			
		||||
 | 
			
		||||
#include "core/arm/arm_interface.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/hle/kernel/kernel.h"
 | 
			
		||||
#include "core/hle/kernel/thread.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@
 | 
			
		||||
#include "common/common.h"
 | 
			
		||||
#include "common/thread_queue_list.h"
 | 
			
		||||
 | 
			
		||||
#include "core/arm/arm_interface.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/core_timing.h"
 | 
			
		||||
#include "core/hle/hle.h"
 | 
			
		||||
@@ -50,7 +51,7 @@ public:
 | 
			
		||||
        return MakeResult<bool>(wait);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ThreadContext context;
 | 
			
		||||
    Core::ThreadContext context;
 | 
			
		||||
 | 
			
		||||
    u32 thread_id;
 | 
			
		||||
 | 
			
		||||
@@ -104,18 +105,18 @@ inline void SetCurrentThread(Thread* t) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Saves the current CPU context
 | 
			
		||||
void SaveContext(ThreadContext& ctx) {
 | 
			
		||||
void SaveContext(Core::ThreadContext& ctx) {
 | 
			
		||||
    Core::g_app_core->SaveContext(ctx);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Loads a CPU context
 | 
			
		||||
void LoadContext(ThreadContext& ctx) {
 | 
			
		||||
void LoadContext(Core::ThreadContext& ctx) {
 | 
			
		||||
    Core::g_app_core->LoadContext(ctx);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Resets a thread
 | 
			
		||||
void ResetThread(Thread* t, u32 arg, s32 lowest_priority) {
 | 
			
		||||
    memset(&t->context, 0, sizeof(ThreadContext));
 | 
			
		||||
    memset(&t->context, 0, sizeof(Core::ThreadContext));
 | 
			
		||||
 | 
			
		||||
    t->context.cpu_registers[0] = arg;
 | 
			
		||||
    t->context.pc = t->context.reg_15 = t->entry_point;
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@
 | 
			
		||||
 | 
			
		||||
#include "common/log.h"
 | 
			
		||||
 | 
			
		||||
#include "core/arm/arm_interface.h"
 | 
			
		||||
#include "core/hle/hle.h"
 | 
			
		||||
#include "core/hle/kernel/event.h"
 | 
			
		||||
#include "core/hle/kernel/shared_memory.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@
 | 
			
		||||
#include "common/string_util.h"
 | 
			
		||||
#include "common/symbols.h"
 | 
			
		||||
 | 
			
		||||
#include "core/arm/arm_interface.h"
 | 
			
		||||
#include "core/mem_map.h"
 | 
			
		||||
 | 
			
		||||
#include "core/hle/kernel/address_arbiter.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -20,21 +20,6 @@ struct PageInfo {
 | 
			
		||||
    u32 flags;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct ThreadContext {
 | 
			
		||||
    u32 cpu_registers[13];
 | 
			
		||||
    u32 sp;
 | 
			
		||||
    u32 lr;
 | 
			
		||||
    u32 pc;
 | 
			
		||||
    u32 cpsr;
 | 
			
		||||
    u32 fpu_registers[32];
 | 
			
		||||
    u32 fpscr;
 | 
			
		||||
    u32 fpexc;
 | 
			
		||||
 | 
			
		||||
    // These are not part of native ThreadContext, but needed by emu
 | 
			
		||||
    u32 reg_15;
 | 
			
		||||
    u32 mode;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum ResetType {
 | 
			
		||||
    RESETTYPE_ONESHOT,
 | 
			
		||||
    RESETTYPE_STICKY,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user