diff options
| author | 2021-01-31 01:38:57 -0800 | |
|---|---|---|
| committer | 2021-02-05 14:03:32 -0800 | |
| commit | ff3c7c068b926399513bf7328c22e224ab0b53d6 (patch) | |
| tree | c2a5d9f80ecf551659daa410cc384b1792eff31d /src/core/hle/service/btm | |
| parent | hle: kernel: Implement KEvent. (diff) | |
| download | yuzu-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.cpp | 32 |
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 | ||
| 69 | private: | 71 | private: |
| @@ -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 | ||
| 108 | class BTM_USR final : public ServiceFramework<BTM_USR> { | 110 | class BTM_USR final : public ServiceFramework<BTM_USR> { |