summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/thread.h
diff options
context:
space:
mode:
authorGravatar bunnei2014-05-15 18:27:08 -0400
committerGravatar bunnei2014-05-15 18:27:08 -0400
commit940330c6e12b3eefb9fb035f75f4b090c969cb75 (patch)
tree1beb3f6e0c32b513b4a80bccb5609ca018605064 /src/core/hle/kernel/thread.h
parentchanged "UID" to "Handle" to be a little more consistent with CTR naming (diff)
downloadyuzu-940330c6e12b3eefb9fb035f75f4b090c969cb75.tar.gz
yuzu-940330c6e12b3eefb9fb035f75f4b090c969cb75.tar.xz
yuzu-940330c6e12b3eefb9fb035f75f4b090c969cb75.zip
completely gutted/refactored threading code to be simpler
Diffstat (limited to 'src/core/hle/kernel/thread.h')
-rw-r--r--src/core/hle/kernel/thread.h44
1 files changed, 2 insertions, 42 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index 05468fb2e..cca4e85fd 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -7,50 +7,10 @@
7#include "common/common_types.h" 7#include "common/common_types.h"
8#include "core/hle/kernel/kernel.h" 8#include "core/hle/kernel/kernel.h"
9 9
10enum ThreadStatus {
11 THREADSTATUS_RUNNING = 1,
12 THREADSTATUS_READY = 2,
13 THREADSTATUS_WAIT = 4,
14 THREADSTATUS_SUSPEND = 8,
15 THREADSTATUS_DORMANT = 16,
16 THREADSTATUS_DEAD = 32,
17
18 THREADSTATUS_WAITSUSPEND = THREADSTATUS_WAIT | THREADSTATUS_SUSPEND
19};
20
21struct ThreadContext {
22 void reset();
23
24 u32 reg[16];
25 u32 cpsr;
26 u32 pc;
27};
28
29class Thread; 10class Thread;
30 11
31Thread* __KernelCreateThread(UID& id, UID module_id, const char* name, u32 priority, u32 entrypoint, 12/// Sets up the primary application thread
32 u32 arg, u32 stack_top, u32 processor_id, int stack_size=0x4000); 13Handle __KernelSetupMainThread(s32 priority, int stack_size=0x4000);
33
34UID __KernelCreateThread(UID module_id, const char* name, u32 priority, u32 entry_point, u32 arg,
35 u32 stack_top, u32 processor_id, int stack_size=0x4000);
36
37void __KernelResetThread(Thread *t, int lowest_priority);
38void __KernelChangeReadyState(Thread *thread, UID thread_id, bool ready);
39void __KernelChangeReadyState(UID thread_id, bool ready);
40Thread* __KernelNextThread();
41void __KernelSaveContext(ThreadContext *ctx);
42void __KernelLoadContext(ThreadContext *ctx);
43void __KernelSwitchContext(Thread *target, const char *reason);
44bool __KernelSwitchToThread(UID thread_id, const char *reason);
45UID __KernelSetupRootThread(UID module_id, int arg, int prio, int stack_size=0x4000);
46int __KernelRotateThreadReadyQueue(int priority=0);
47 14
48void __KernelThreadingInit(); 15void __KernelThreadingInit();
49void __KernelThreadingShutdown(); 16void __KernelThreadingShutdown();
50
51//const char *__KernelGetThreadName(SceUID threadID);
52//
53//void __KernelSaveContext(ThreadContext *ctx);
54//void __KernelLoadContext(ThreadContext *ctx);
55
56//void __KernelSwitchContext(Thread *target, const char *reason); \ No newline at end of file