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/kernel/svc.cpp | |
| 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/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index f94eecbb8..9d036f45d 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include "core/hle/kernel/handle_table.h" | 26 | #include "core/hle/kernel/handle_table.h" |
| 27 | #include "core/hle/kernel/k_address_arbiter.h" | 27 | #include "core/hle/kernel/k_address_arbiter.h" |
| 28 | #include "core/hle/kernel/k_condition_variable.h" | 28 | #include "core/hle/kernel/k_condition_variable.h" |
| 29 | #include "core/hle/kernel/k_event.h" | ||
| 29 | #include "core/hle/kernel/k_readable_event.h" | 30 | #include "core/hle/kernel/k_readable_event.h" |
| 30 | #include "core/hle/kernel/k_resource_limit.h" | 31 | #include "core/hle/kernel/k_resource_limit.h" |
| 31 | #include "core/hle/kernel/k_scheduler.h" | 32 | #include "core/hle/kernel/k_scheduler.h" |
| @@ -1870,18 +1871,18 @@ static ResultCode CreateEvent(Core::System& system, Handle* write_handle, Handle | |||
| 1870 | LOG_DEBUG(Kernel_SVC, "called"); | 1871 | LOG_DEBUG(Kernel_SVC, "called"); |
| 1871 | 1872 | ||
| 1872 | auto& kernel = system.Kernel(); | 1873 | auto& kernel = system.Kernel(); |
| 1873 | const auto [readable_event, writable_event] = | 1874 | const auto event = KEvent::Create(kernel, "CreateEvent"); |
| 1874 | KWritableEvent::CreateEventPair(kernel, "CreateEvent"); | 1875 | event->Initialize(); |
| 1875 | 1876 | ||
| 1876 | HandleTable& handle_table = kernel.CurrentProcess()->GetHandleTable(); | 1877 | HandleTable& handle_table = kernel.CurrentProcess()->GetHandleTable(); |
| 1877 | 1878 | ||
| 1878 | const auto write_create_result = handle_table.Create(writable_event); | 1879 | const auto write_create_result = handle_table.Create(event->GetWritableEvent()); |
| 1879 | if (write_create_result.Failed()) { | 1880 | if (write_create_result.Failed()) { |
| 1880 | return write_create_result.Code(); | 1881 | return write_create_result.Code(); |
| 1881 | } | 1882 | } |
| 1882 | *write_handle = *write_create_result; | 1883 | *write_handle = *write_create_result; |
| 1883 | 1884 | ||
| 1884 | const auto read_create_result = handle_table.Create(readable_event); | 1885 | const auto read_create_result = handle_table.Create(event->GetReadableEvent()); |
| 1885 | if (read_create_result.Failed()) { | 1886 | if (read_create_result.Failed()) { |
| 1886 | handle_table.Close(*write_create_result); | 1887 | handle_table.Close(*write_create_result); |
| 1887 | return read_create_result.Code(); | 1888 | return read_create_result.Code(); |