summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/kernel/event.h6
-rw-r--r--src/core/hle/kernel/kernel.cpp4
-rw-r--r--src/core/hle/kernel/kernel.h9
-rw-r--r--src/core/hle/kernel/thread.cpp4
-rw-r--r--src/core/hle/kernel/thread.h5
-rw-r--r--src/core/hle/kernel/timer.h1
-rw-r--r--src/core/hle/svc.cpp4
7 files changed, 26 insertions, 7 deletions
diff --git a/src/core/hle/kernel/event.h b/src/core/hle/kernel/event.h
index 6fe74065d..8dcd23edb 100644
--- a/src/core/hle/kernel/event.h
+++ b/src/core/hle/kernel/event.h
@@ -9,12 +9,6 @@
9 9
10namespace Kernel { 10namespace Kernel {
11 11
12enum class ResetType {
13 OneShot,
14 Sticky,
15 Pulse,
16};
17
18class Event final : public WaitObject { 12class Event final : public WaitObject {
19public: 13public:
20 /** 14 /**
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 9a2c8ce05..9e1795927 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -40,6 +40,10 @@ void WaitObject::WakeupAllWaitingThreads() {
40 HLE::Reschedule(__func__); 40 HLE::Reschedule(__func__);
41} 41}
42 42
43const std::vector<SharedPtr<Thread>>& WaitObject::GetWaitingThreads() const {
44 return waiting_threads;
45}
46
43HandleTable::HandleTable() { 47HandleTable::HandleTable() {
44 next_generation = 1; 48 next_generation = 1;
45 Clear(); 49 Clear();
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index 0e95f7ff0..6b8dbecff 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -53,6 +53,12 @@ enum {
53 DEFAULT_STACK_SIZE = 0x4000, 53 DEFAULT_STACK_SIZE = 0x4000,
54}; 54};
55 55
56enum class ResetType {
57 OneShot,
58 Sticky,
59 Pulse,
60};
61
56class Object : NonCopyable { 62class Object : NonCopyable {
57public: 63public:
58 virtual ~Object() {} 64 virtual ~Object() {}
@@ -149,6 +155,9 @@ public:
149 /// Wake up all threads waiting on this object 155 /// Wake up all threads waiting on this object
150 void WakeupAllWaitingThreads(); 156 void WakeupAllWaitingThreads();
151 157
158 /// Get a const reference to the waiting threads list for debug use
159 const std::vector<SharedPtr<Thread>>& GetWaitingThreads() const;
160
152private: 161private:
153 /// Threads waiting for this object to become available 162 /// Threads waiting for this object to become available
154 std::vector<SharedPtr<Thread>> waiting_threads; 163 std::vector<SharedPtr<Thread>> waiting_threads;
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index 4486a812c..c4eeeee56 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -665,4 +665,8 @@ void ThreadingShutdown() {
665 ready_queue.clear(); 665 ready_queue.clear();
666} 666}
667 667
668const std::vector<SharedPtr<Thread>>& GetThreadList() {
669 return thread_list;
670}
671
668} // namespace 672} // namespace
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index f63131716..e0ffcea8a 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -236,4 +236,9 @@ void ThreadingInit();
236 */ 236 */
237void ThreadingShutdown(); 237void ThreadingShutdown();
238 238
239/**
240 * Get a const reference to the thread list for debug use
241 */
242const std::vector<SharedPtr<Thread>>& GetThreadList();
243
239} // namespace 244} // namespace
diff --git a/src/core/hle/kernel/timer.h b/src/core/hle/kernel/timer.h
index 59a77aad3..18ea0236b 100644
--- a/src/core/hle/kernel/timer.h
+++ b/src/core/hle/kernel/timer.h
@@ -5,7 +5,6 @@
5#pragma once 5#pragma once
6 6
7#include "common/common_types.h" 7#include "common/common_types.h"
8#include "core/hle/kernel/event.h"
9#include "core/hle/kernel/kernel.h" 8#include "core/hle/kernel/kernel.h"
10 9
11namespace Kernel { 10namespace Kernel {
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index 02b397eba..c6b80dc50 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -576,6 +576,7 @@ static ResultCode CreateMutex(Handle* out_handle, u32 initial_locked) {
576 using Kernel::Mutex; 576 using Kernel::Mutex;
577 577
578 SharedPtr<Mutex> mutex = Mutex::Create(initial_locked != 0); 578 SharedPtr<Mutex> mutex = Mutex::Create(initial_locked != 0);
579 mutex->name = Common::StringFromFormat("mutex-%08x", Core::g_app_core->GetReg(14));
579 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(mutex))); 580 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(mutex)));
580 581
581 LOG_TRACE(Kernel_SVC, "called initial_locked=%s : created handle=0x%08X", 582 LOG_TRACE(Kernel_SVC, "called initial_locked=%s : created handle=0x%08X",
@@ -646,6 +647,7 @@ static ResultCode CreateSemaphore(Handle* out_handle, s32 initial_count, s32 max
646 using Kernel::Semaphore; 647 using Kernel::Semaphore;
647 648
648 CASCADE_RESULT(SharedPtr<Semaphore> semaphore, Semaphore::Create(initial_count, max_count)); 649 CASCADE_RESULT(SharedPtr<Semaphore> semaphore, Semaphore::Create(initial_count, max_count));
650 semaphore->name = Common::StringFromFormat("semaphore-%08x", Core::g_app_core->GetReg(14));
649 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(semaphore))); 651 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(semaphore)));
650 652
651 LOG_TRACE(Kernel_SVC, "called initial_count=%d, max_count=%d, created handle=0x%08X", 653 LOG_TRACE(Kernel_SVC, "called initial_count=%d, max_count=%d, created handle=0x%08X",
@@ -702,6 +704,7 @@ static ResultCode CreateEvent(Handle* out_handle, u32 reset_type) {
702 using Kernel::Event; 704 using Kernel::Event;
703 705
704 SharedPtr<Event> evt = Event::Create(static_cast<Kernel::ResetType>(reset_type)); 706 SharedPtr<Event> evt = Event::Create(static_cast<Kernel::ResetType>(reset_type));
707 evt->name = Common::StringFromFormat("event-%08x", Core::g_app_core->GetReg(14));
705 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(evt))); 708 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(evt)));
706 709
707 LOG_TRACE(Kernel_SVC, "called reset_type=0x%08X : created handle=0x%08X", reset_type, 710 LOG_TRACE(Kernel_SVC, "called reset_type=0x%08X : created handle=0x%08X", reset_type,
@@ -748,6 +751,7 @@ static ResultCode CreateTimer(Handle* out_handle, u32 reset_type) {
748 using Kernel::Timer; 751 using Kernel::Timer;
749 752
750 SharedPtr<Timer> timer = Timer::Create(static_cast<Kernel::ResetType>(reset_type)); 753 SharedPtr<Timer> timer = Timer::Create(static_cast<Kernel::ResetType>(reset_type));
754 timer->name = Common::StringFromFormat("timer-%08x", Core::g_app_core->GetReg(14));
751 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(timer))); 755 CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(timer)));
752 756
753 LOG_TRACE(Kernel_SVC, "called reset_type=0x%08X : created handle=0x%08X", reset_type, 757 LOG_TRACE(Kernel_SVC, "called reset_type=0x%08X : created handle=0x%08X", reset_type,