diff options
Diffstat (limited to 'src/core/hle/kernel/process.h')
| -rw-r--r-- | src/core/hle/kernel/process.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h index c2df451f3..e2eda26b9 100644 --- a/src/core/hle/kernel/process.h +++ b/src/core/hle/kernel/process.h | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include <cstddef> | 8 | #include <cstddef> |
| 9 | #include <list> | 9 | #include <list> |
| 10 | #include <string> | 10 | #include <string> |
| 11 | #include <unordered_map> | ||
| 11 | #include <vector> | 12 | #include <vector> |
| 12 | #include "common/common_types.h" | 13 | #include "common/common_types.h" |
| 13 | #include "core/hle/kernel/address_arbiter.h" | 14 | #include "core/hle/kernel/address_arbiter.h" |
| @@ -232,6 +233,15 @@ public: | |||
| 232 | return thread_list; | 233 | return thread_list; |
| 233 | } | 234 | } |
| 234 | 235 | ||
| 236 | /// Insert a thread into the condition variable wait container | ||
| 237 | void InsertConditionVariableThread(SharedPtr<Thread> thread); | ||
| 238 | |||
| 239 | /// Remove a thread from the condition variable wait container | ||
| 240 | void RemoveConditionVariableThread(SharedPtr<Thread> thread); | ||
| 241 | |||
| 242 | /// Obtain all condition variable threads waiting for some address | ||
| 243 | std::vector<SharedPtr<Thread>> GetConditionVariableThreads(VAddr cond_var_addr); | ||
| 244 | |||
| 235 | /// Registers a thread as being created under this process, | 245 | /// Registers a thread as being created under this process, |
| 236 | /// adding it to this process' thread list. | 246 | /// adding it to this process' thread list. |
| 237 | void RegisterThread(const Thread* thread); | 247 | void RegisterThread(const Thread* thread); |
| @@ -375,6 +385,9 @@ private: | |||
| 375 | /// List of threads that are running with this process as their owner. | 385 | /// List of threads that are running with this process as their owner. |
| 376 | std::list<const Thread*> thread_list; | 386 | std::list<const Thread*> thread_list; |
| 377 | 387 | ||
| 388 | /// List of threads waiting for a condition variable | ||
| 389 | std::unordered_map<VAddr, std::list<SharedPtr<Thread>>> cond_var_threads; | ||
| 390 | |||
| 378 | /// System context | 391 | /// System context |
| 379 | Core::System& system; | 392 | Core::System& system; |
| 380 | 393 | ||