summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp6
-rw-r--r--src/core/hle/kernel/hle_ipc.h4
-rw-r--r--src/core/hle/kernel/kernel.cpp2
-rw-r--r--src/core/hle/kernel/writable_event.cpp4
-rw-r--r--src/core/hle/kernel/writable_event.h2
-rw-r--r--src/core/hle/service/am/am.cpp1
-rw-r--r--src/core/hle/service/am/applets/applets.h6
-rw-r--r--src/core/hle/service/nfp/nfp.h1
-rw-r--r--src/core/hle/service/vi/vi.cpp2
9 files changed, 14 insertions, 14 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index 21fda42d6..61ce7d7e4 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -39,7 +39,7 @@ void SessionRequestHandler::ClientDisconnected(const SharedPtr<ServerSession>& s
39 39
40SharedPtr<WritableEvent> HLERequestContext::SleepClientThread( 40SharedPtr<WritableEvent> HLERequestContext::SleepClientThread(
41 SharedPtr<Thread> thread, const std::string& reason, u64 timeout, WakeupCallback&& callback, 41 SharedPtr<Thread> thread, const std::string& reason, u64 timeout, WakeupCallback&& callback,
42 SharedPtr<WritableEvent> writable_event, SharedPtr<ReadableEvent> readable_event) { 42 SharedPtr<WritableEvent> writable_event) {
43 // Put the client thread to sleep until the wait event is signaled or the timeout expires. 43 // Put the client thread to sleep until the wait event is signaled or the timeout expires.
44 thread->SetWakeupCallback([context = *this, callback]( 44 thread->SetWakeupCallback([context = *this, callback](
45 ThreadWakeupReason reason, SharedPtr<Thread> thread, 45 ThreadWakeupReason reason, SharedPtr<Thread> thread,
@@ -51,14 +51,14 @@ SharedPtr<WritableEvent> HLERequestContext::SleepClientThread(
51 }); 51 });
52 52
53 auto& kernel = Core::System::GetInstance().Kernel(); 53 auto& kernel = Core::System::GetInstance().Kernel();
54 if (!writable_event || !readable_event) { 54 if (!writable_event) {
55 // Create event if not provided 55 // Create event if not provided
56 const auto pair = WritableEvent::CreateEventPair(kernel, Kernel::ResetType::OneShot, 56 const auto pair = WritableEvent::CreateEventPair(kernel, Kernel::ResetType::OneShot,
57 "HLE Pause Event: " + reason); 57 "HLE Pause Event: " + reason);
58 writable_event = pair.writable; 58 writable_event = pair.writable;
59 readable_event = pair.readable;
60 } 59 }
61 60
61 const auto readable_event{writable_event->GetReadableEvent()};
62 writable_event->Clear(); 62 writable_event->Clear();
63 thread->SetStatus(ThreadStatus::WaitHLEEvent); 63 thread->SetStatus(ThreadStatus::WaitHLEEvent);
64 thread->SetWaitObjects({readable_event}); 64 thread->SetWaitObjects({readable_event});
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 557940f11..e5c0610cd 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -122,13 +122,11 @@ public:
122 * was called. 122 * was called.
123 * @param writable_event Event to use to wake up the thread. If unspecified, an event will be 123 * @param writable_event Event to use to wake up the thread. If unspecified, an event will be
124 * created. 124 * created.
125 * @param readable_event Event to be bound to the thread to wake up upon.
126 * @returns Event that when signaled will resume the thread and call the callback function. 125 * @returns Event that when signaled will resume the thread and call the callback function.
127 */ 126 */
128 SharedPtr<WritableEvent> SleepClientThread(SharedPtr<Thread> thread, const std::string& reason, 127 SharedPtr<WritableEvent> SleepClientThread(SharedPtr<Thread> thread, const std::string& reason,
129 u64 timeout, WakeupCallback&& callback, 128 u64 timeout, WakeupCallback&& callback,
130 SharedPtr<WritableEvent> writable_event = nullptr, 129 SharedPtr<WritableEvent> writable_event = nullptr);
131 SharedPtr<ReadableEvent> readable_event = nullptr);
132 130
133 /// Populates this context with data from the requesting process/thread. 131 /// Populates this context with data from the requesting process/thread.
134 ResultCode PopulateFromIncomingCommandBuffer(const HandleTable& handle_table, 132 ResultCode PopulateFromIncomingCommandBuffer(const HandleTable& handle_table,
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 21d7f3483..e441c5bc6 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -17,11 +17,9 @@
17#include "core/hle/kernel/handle_table.h" 17#include "core/hle/kernel/handle_table.h"
18#include "core/hle/kernel/kernel.h" 18#include "core/hle/kernel/kernel.h"
19#include "core/hle/kernel/process.h" 19#include "core/hle/kernel/process.h"
20#include "core/hle/kernel/readable_event.h"
21#include "core/hle/kernel/resource_limit.h" 20#include "core/hle/kernel/resource_limit.h"
22#include "core/hle/kernel/thread.h" 21#include "core/hle/kernel/thread.h"
23#include "core/hle/kernel/timer.h" 22#include "core/hle/kernel/timer.h"
24#include "core/hle/kernel/writable_event.h"
25#include "core/hle/lock.h" 23#include "core/hle/lock.h"
26#include "core/hle/result.h" 24#include "core/hle/result.h"
27 25
diff --git a/src/core/hle/kernel/writable_event.cpp b/src/core/hle/kernel/writable_event.cpp
index 27d7ff734..a58ea6ec8 100644
--- a/src/core/hle/kernel/writable_event.cpp
+++ b/src/core/hle/kernel/writable_event.cpp
@@ -29,6 +29,10 @@ EventPair WritableEvent::CreateEventPair(KernelCore& kernel, ResetType reset_typ
29 return {std::move(readable_event), std::move(writable_event)}; 29 return {std::move(readable_event), std::move(writable_event)};
30} 30}
31 31
32SharedPtr<ReadableEvent> WritableEvent::GetReadableEvent() const {
33 return readable;
34}
35
32ResetType WritableEvent::GetResetType() const { 36ResetType WritableEvent::GetResetType() const {
33 return readable->reset_type; 37 return readable->reset_type;
34} 38}
diff --git a/src/core/hle/kernel/writable_event.h b/src/core/hle/kernel/writable_event.h
index 4357d1b9f..fc57d18d7 100644
--- a/src/core/hle/kernel/writable_event.h
+++ b/src/core/hle/kernel/writable_event.h
@@ -44,6 +44,8 @@ public:
44 return HANDLE_TYPE; 44 return HANDLE_TYPE;
45 } 45 }
46 46
47 SharedPtr<ReadableEvent> GetReadableEvent() const;
48
47 ResetType GetResetType() const; 49 ResetType GetResetType() const;
48 50
49 void Signal(); 51 void Signal();
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index a3e0df9bf..3a7b6da84 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -302,6 +302,7 @@ void ISelfController::GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext&
302 IPC::ResponseBuilder rb{ctx, 2, 1}; 302 IPC::ResponseBuilder rb{ctx, 2, 1};
303 rb.Push(RESULT_SUCCESS); 303 rb.Push(RESULT_SUCCESS);
304 rb.PushCopyObjects(launchable_event.readable); 304 rb.PushCopyObjects(launchable_event.readable);
305}
305 306
306void ISelfController::SetScreenShotImageOrientation(Kernel::HLERequestContext& ctx) { 307void ISelfController::SetScreenShotImageOrientation(Kernel::HLERequestContext& ctx) {
307 LOG_WARNING(Service_AM, "(STUBBED) called"); 308 LOG_WARNING(Service_AM, "(STUBBED) called");
diff --git a/src/core/hle/service/am/applets/applets.h b/src/core/hle/service/am/applets/applets.h
index 3eff471eb..b0a8913c3 100644
--- a/src/core/hle/service/am/applets/applets.h
+++ b/src/core/hle/service/am/applets/applets.h
@@ -8,14 +8,10 @@
8#include <queue> 8#include <queue>
9#include "common/swap.h" 9#include "common/swap.h"
10#include "core/hle/kernel/kernel.h" 10#include "core/hle/kernel/kernel.h"
11#include "core/hle/kernel/writable_event.h"
11 12
12union ResultCode; 13union ResultCode;
13 14
14namespace Kernel {
15class ReadableEvent;
16class WritableEvent;
17} // namespace Kernel
18
19namespace Service::AM { 15namespace Service::AM {
20 16
21class IStorage; 17class IStorage;
diff --git a/src/core/hle/service/nfp/nfp.h b/src/core/hle/service/nfp/nfp.h
index 437c10aad..a1817e991 100644
--- a/src/core/hle/service/nfp/nfp.h
+++ b/src/core/hle/service/nfp/nfp.h
@@ -6,6 +6,7 @@
6 6
7#include <array> 7#include <array>
8#include <vector> 8#include <vector>
9#include "core/hle/kernel/readable_event.h"
9#include "core/hle/kernel/writable_event.h" 10#include "core/hle/kernel/writable_event.h"
10#include "core/hle/service/service.h" 11#include "core/hle/service/service.h"
11 12
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index 47beaf8f6..717eae36a 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -548,7 +548,7 @@ private:
548 IPC::ResponseBuilder rb{ctx, 2}; 548 IPC::ResponseBuilder rb{ctx, 2};
549 rb.Push(RESULT_SUCCESS); 549 rb.Push(RESULT_SUCCESS);
550 }, 550 },
551 buffer_queue->GetWritableBufferWaitEvent(), buffer_queue->GetBufferWaitEvent()); 551 buffer_queue->GetWritableBufferWaitEvent());
552 } 552 }
553 } else if (transaction == TransactionId::RequestBuffer) { 553 } else if (transaction == TransactionId::RequestBuffer) {
554 IGBPRequestBufferRequestParcel request{ctx.ReadBuffer()}; 554 IGBPRequestBufferRequestParcel request{ctx.ReadBuffer()};