summaryrefslogtreecommitdiff
path: root/src/core/hle/service/btm
diff options
context:
space:
mode:
authorGravatar bunnei2021-01-31 01:38:57 -0800
committerGravatar bunnei2021-02-05 14:03:32 -0800
commitff3c7c068b926399513bf7328c22e224ab0b53d6 (patch)
treec2a5d9f80ecf551659daa410cc384b1792eff31d /src/core/hle/service/btm
parenthle: kernel: Implement KEvent. (diff)
downloadyuzu-ff3c7c068b926399513bf7328c22e224ab0b53d6.tar.gz
yuzu-ff3c7c068b926399513bf7328c22e224ab0b53d6.tar.xz
yuzu-ff3c7c068b926399513bf7328c22e224ab0b53d6.zip
hle: kernel: Reimplement KReadableEvent and KWritableEvent.
Diffstat (limited to 'src/core/hle/service/btm')
-rw-r--r--src/core/hle/service/btm/btm.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/core/hle/service/btm/btm.cpp b/src/core/hle/service/btm/btm.cpp
index 3af51d603..9cf2ee92a 100644
--- a/src/core/hle/service/btm/btm.cpp
+++ b/src/core/hle/service/btm/btm.cpp
@@ -8,8 +8,8 @@
8#include "core/core.h" 8#include "core/core.h"
9#include "core/hle/ipc_helpers.h" 9#include "core/hle/ipc_helpers.h"
10#include "core/hle/kernel/hle_ipc.h" 10#include "core/hle/kernel/hle_ipc.h"
11#include "core/hle/kernel/k_event.h"
11#include "core/hle/kernel/k_readable_event.h" 12#include "core/hle/kernel/k_readable_event.h"
12#include "core/hle/kernel/k_writable_event.h"
13#include "core/hle/kernel/kernel.h" 13#include "core/hle/kernel/kernel.h"
14#include "core/hle/service/btm/btm.h" 14#include "core/hle/service/btm/btm.h"
15#include "core/hle/service/service.h" 15#include "core/hle/service/service.h"
@@ -58,12 +58,14 @@ public:
58 RegisterHandlers(functions); 58 RegisterHandlers(functions);
59 59
60 auto& kernel = system.Kernel(); 60 auto& kernel = system.Kernel();
61 scan_event = Kernel::KWritableEvent::CreateEventPair(kernel, "IBtmUserCore:ScanEvent"); 61 scan_event = Kernel::KEvent::Create(kernel, "IBtmUserCore:ScanEvent");
62 connection_event = 62 scan_event->Initialize();
63 Kernel::KWritableEvent::CreateEventPair(kernel, "IBtmUserCore:ConnectionEvent"); 63 connection_event = Kernel::KEvent::Create(kernel, "IBtmUserCore:ConnectionEvent");
64 service_discovery = 64 connection_event->Initialize();
65 Kernel::KWritableEvent::CreateEventPair(kernel, "IBtmUserCore:Discovery"); 65 service_discovery = Kernel::KEvent::Create(kernel, "IBtmUserCore:Discovery");
66 config_event = Kernel::KWritableEvent::CreateEventPair(kernel, "IBtmUserCore:ConfigEvent"); 66 service_discovery->Initialize();
67 config_event = Kernel::KEvent::Create(kernel, "IBtmUserCore:ConfigEvent");
68 config_event->Initialize();
67 } 69 }
68 70
69private: 71private:
@@ -72,7 +74,7 @@ private:
72 74
73 IPC::ResponseBuilder rb{ctx, 2, 1}; 75 IPC::ResponseBuilder rb{ctx, 2, 1};
74 rb.Push(RESULT_SUCCESS); 76 rb.Push(RESULT_SUCCESS);
75 rb.PushCopyObjects(scan_event.readable); 77 rb.PushCopyObjects(scan_event->GetReadableEvent());
76 } 78 }
77 79
78 void AcquireBleConnectionEvent(Kernel::HLERequestContext& ctx) { 80 void AcquireBleConnectionEvent(Kernel::HLERequestContext& ctx) {
@@ -80,7 +82,7 @@ private:
80 82
81 IPC::ResponseBuilder rb{ctx, 2, 1}; 83 IPC::ResponseBuilder rb{ctx, 2, 1};
82 rb.Push(RESULT_SUCCESS); 84 rb.Push(RESULT_SUCCESS);
83 rb.PushCopyObjects(connection_event.readable); 85 rb.PushCopyObjects(connection_event->GetReadableEvent());
84 } 86 }
85 87
86 void AcquireBleServiceDiscoveryEvent(Kernel::HLERequestContext& ctx) { 88 void AcquireBleServiceDiscoveryEvent(Kernel::HLERequestContext& ctx) {
@@ -88,7 +90,7 @@ private:
88 90
89 IPC::ResponseBuilder rb{ctx, 2, 1}; 91 IPC::ResponseBuilder rb{ctx, 2, 1};
90 rb.Push(RESULT_SUCCESS); 92 rb.Push(RESULT_SUCCESS);
91 rb.PushCopyObjects(service_discovery.readable); 93 rb.PushCopyObjects(service_discovery->GetReadableEvent());
92 } 94 }
93 95
94 void AcquireBleMtuConfigEvent(Kernel::HLERequestContext& ctx) { 96 void AcquireBleMtuConfigEvent(Kernel::HLERequestContext& ctx) {
@@ -96,13 +98,13 @@ private:
96 98
97 IPC::ResponseBuilder rb{ctx, 2, 1}; 99 IPC::ResponseBuilder rb{ctx, 2, 1};
98 rb.Push(RESULT_SUCCESS); 100 rb.Push(RESULT_SUCCESS);
99 rb.PushCopyObjects(config_event.readable); 101 rb.PushCopyObjects(config_event->GetReadableEvent());
100 } 102 }
101 103
102 Kernel::EventPair scan_event; 104 std::shared_ptr<Kernel::KEvent> scan_event;
103 Kernel::EventPair connection_event; 105 std::shared_ptr<Kernel::KEvent> connection_event;
104 Kernel::EventPair service_discovery; 106 std::shared_ptr<Kernel::KEvent> service_discovery;
105 Kernel::EventPair config_event; 107 std::shared_ptr<Kernel::KEvent> config_event;
106}; 108};
107 109
108class BTM_USR final : public ServiceFramework<BTM_USR> { 110class BTM_USR final : public ServiceFramework<BTM_USR> {