aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/arm/arm_interface.h
diff options
context:
space:
mode:
authorGravatar Kevin Hartman <kevin@hart.mn>2015-01-25 22:56:17 -0800
committerGravatar Kevin Hartman <kevin@hart.mn>2015-02-09 21:47:12 -0800
commit5fcbfc06eb247c0a4c1db201ac9050d80d4e4020 (patch)
tree4cdac59449b025c7a07e8655f29eda2fbcb423fe /src/core/arm/arm_interface.h
parent848795f3834c30695208e86c5bbebf6c71a57d96 (diff)
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.
Diffstat (limited to 'src/core/arm/arm_interface.h')
-rw-r--r--src/core/arm/arm_interface.h9
1 files changed, 9 insertions, 0 deletions
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
@@ -86,6 +86,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
*/