diff options
| author | 2014-05-15 18:27:08 -0400 | |
|---|---|---|
| committer | 2014-05-15 18:27:08 -0400 | |
| commit | 940330c6e12b3eefb9fb035f75f4b090c969cb75 (patch) | |
| tree | 1beb3f6e0c32b513b4a80bccb5609ca018605064 /src/core/hle/kernel/thread.h | |
| parent | changed "UID" to "Handle" to be a little more consistent with CTR naming (diff) | |
| download | yuzu-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.h | 44 |
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 | ||
| 10 | enum 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 | |||
| 21 | struct ThreadContext { | ||
| 22 | void reset(); | ||
| 23 | |||
| 24 | u32 reg[16]; | ||
| 25 | u32 cpsr; | ||
| 26 | u32 pc; | ||
| 27 | }; | ||
| 28 | |||
| 29 | class Thread; | 10 | class Thread; |
| 30 | 11 | ||
| 31 | Thread* __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); | 13 | Handle __KernelSetupMainThread(s32 priority, int stack_size=0x4000); |
| 33 | |||
| 34 | UID __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 | |||
| 37 | void __KernelResetThread(Thread *t, int lowest_priority); | ||
| 38 | void __KernelChangeReadyState(Thread *thread, UID thread_id, bool ready); | ||
| 39 | void __KernelChangeReadyState(UID thread_id, bool ready); | ||
| 40 | Thread* __KernelNextThread(); | ||
| 41 | void __KernelSaveContext(ThreadContext *ctx); | ||
| 42 | void __KernelLoadContext(ThreadContext *ctx); | ||
| 43 | void __KernelSwitchContext(Thread *target, const char *reason); | ||
| 44 | bool __KernelSwitchToThread(UID thread_id, const char *reason); | ||
| 45 | UID __KernelSetupRootThread(UID module_id, int arg, int prio, int stack_size=0x4000); | ||
| 46 | int __KernelRotateThreadReadyQueue(int priority=0); | ||
| 47 | 14 | ||
| 48 | void __KernelThreadingInit(); | 15 | void __KernelThreadingInit(); |
| 49 | void __KernelThreadingShutdown(); | 16 | void __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 | ||