From 5fcbfc06eb247c0a4c1db201ac9050d80d4e4020 Mon Sep 17 00:00:00 2001 From: Kevin Hartman Date: Sun, 25 Jan 2015 22:56:17 -0800 Subject: Scheduler refactor Pt. 1 * Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid for a thread at any given point in the system. * Removes dead code from thread.cpp. * Moves the implementation of resetting a ThreadContext to the corresponding core's implementation. Other changes: * Fixed comments in arm interfaces. * Updated comments in thread.cpp * Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp. * Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation. --- src/core/arm/arm_interface.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/core/arm/arm_interface.h') diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index e612f743..ef37ee05 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h @@ -85,6 +85,15 @@ public: */ virtual void AddTicks(u64 ticks) = 0; + /** + * Initializes a CPU context for use on this CPU + * @param context Thread context to reset + * @param stack_top Pointer to the top of the stack + * @param entry_point Entry point for execution + * @param arg User argument for thread + */ + virtual void ResetContext(Core::ThreadContext& context, u32 stack_top, u32 entry_point, u32 arg) = 0; + /** * Saves the current CPU context * @param ctx Thread context to save -- cgit v1.2.3