diff options
| author | 2017-12-31 17:23:36 -0500 | |
|---|---|---|
| committer | 2017-12-31 17:23:36 -0500 | |
| commit | 1cb978eb82253d6869d1c3729e976a98fb5a7a9c (patch) | |
| tree | 8e1045990a52e489b6e7441aca8c68893959d6e7 /src/core/hle/kernel | |
| parent | svc: Implement svcExitThread. (diff) | |
| download | yuzu-1cb978eb82253d6869d1c3729e976a98fb5a7a9c.tar.gz yuzu-1cb978eb82253d6869d1c3729e976a98fb5a7a9c.tar.xz yuzu-1cb978eb82253d6869d1c3729e976a98fb5a7a9c.zip | |
thread: Keep track of the initially created handle.
This is kinda crufty, but we need it for now to update guest state variables.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/thread.h | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index b20092761..1588cfc7e 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -502,7 +502,8 @@ SharedPtr<Thread> SetupMainThread(VAddr entry_point, u32 priority, | |||
| 502 | SharedPtr<Thread> thread = std::move(thread_res).Unwrap(); | 502 | SharedPtr<Thread> thread = std::move(thread_res).Unwrap(); |
| 503 | 503 | ||
| 504 | // Register 1 must be a handle to the main thread | 504 | // Register 1 must be a handle to the main thread |
| 505 | thread->context.cpu_registers[1] = Kernel::g_handle_table.Create(thread).Unwrap(); | 505 | thread->guest_handle = Kernel::g_handle_table.Create(thread).Unwrap();; |
| 506 | thread->context.cpu_registers[1] = thread->guest_handle; | ||
| 506 | thread->context.fpscr = | 507 | thread->context.fpscr = |
| 507 | FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010 | 508 | FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010 |
| 508 | 509 | ||
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 25d678ba3..ed44ee933 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h | |||
| @@ -212,6 +212,9 @@ public: | |||
| 212 | 212 | ||
| 213 | std::string name; | 213 | std::string name; |
| 214 | 214 | ||
| 215 | /// Handle used by guest emulated application to access this thread | ||
| 216 | Handle guest_handle; | ||
| 217 | |||
| 215 | /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. | 218 | /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. |
| 216 | Handle callback_handle; | 219 | Handle callback_handle; |
| 217 | 220 | ||