diff options
author | bunnei <ericbunnie@gmail.com> | 2014-05-30 02:00:44 +0200 |
---|---|---|
committer | bunnei <ericbunnie@gmail.com> | 2014-05-30 02:00:44 +0200 |
commit | d51c84dde22549c7413e52a682158e6da3ff1fdc (patch) | |
tree | 7865ea94d3221ba823de7a743eca675adea0b993 | |
parent | service: added additional hack to return success on unimplemented service calls (diff) | |
download | yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.tar yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.tar.gz yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.tar.bz2 yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.tar.lz yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.tar.xz yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.tar.zst yuzu-d51c84dde22549c7413e52a682158e6da3ff1fdc.zip |
-rw-r--r-- | src/core/hle/kernel/event.cpp | 18 | ||||
-rw-r--r-- | src/core/hle/kernel/event.h | 5 |
2 files changed, 14 insertions, 9 deletions
diff --git a/src/core/hle/kernel/event.cpp b/src/core/hle/kernel/event.cpp index e85f39f0d..7cb8c5142 100644 --- a/src/core/hle/kernel/event.cpp +++ b/src/core/hle/kernel/event.cpp @@ -54,11 +54,16 @@ public: * Changes whether an event is locked or not * @param handle Handle to event to change * @param locked Boolean locked value to set event + * @return Result of operation, 0 on success, otherwise error code */ -void SetEventLocked(const Handle handle, const bool locked) { +Result SetEventLocked(const Handle handle, const bool locked) { Event* evt = g_object_pool.GetFast<Event>(handle); + if (!evt) { + ERROR_LOG(KERNEL, "SetEventLocked called with unknown handle=0x%08X", handle); + return -1; + } evt->locked = locked; - return; + return 0; } /** @@ -67,23 +72,22 @@ void SetEventLocked(const Handle handle, const bool locked) { * @return Result of operation, 0 on success, otherwise error code */ Result ClearEvent(Handle handle) { - ERROR_LOG(KERNEL, "Unimplemented function ClearEvent"); - return 0; + return SetEventLocked(handle, true); } /** * Creates an event * @param handle Reference to handle for the newly created mutex * @param reset_type ResetType describing how to create event - * @return Handle to newly created object + * @return Newly created Event object */ Event* CreateEvent(Handle& handle, const ResetType reset_type) { Event* evt = new Event; handle = Kernel::g_object_pool.Create(evt); + evt->locked = true; evt->reset_type = evt->intitial_reset_type = reset_type; - evt->locked = false; return evt; } @@ -91,7 +95,7 @@ Event* CreateEvent(Handle& handle, const ResetType reset_type) { /** * Creates an event * @param reset_type ResetType describing how to create event - * @return Handle to newly created object + * @return Handle to newly created Event object */ Handle CreateEvent(const ResetType reset_type) { Handle handle; diff --git a/src/core/hle/kernel/event.h b/src/core/hle/kernel/event.h index c1842cb88..b1d2c6ad1 100644 --- a/src/core/hle/kernel/event.h +++ b/src/core/hle/kernel/event.h @@ -15,8 +15,9 @@ namespace Kernel { * Changes whether an event is locked or not * @param handle Handle to event to change * @param locked Boolean locked value to set event + * @return Result of operation, 0 on success, otherwise error code */ -void SetEventLocked(const Handle handle, const bool locked); +Result SetEventLocked(const Handle handle, const bool locked); /** * Clears an event @@ -28,7 +29,7 @@ Result ClearEvent(Handle handle); /** * Creates an event * @param reset_type ResetType describing how to create event - * @return Handle to newly created object + * @return Handle to newly created Event object */ Handle CreateEvent(const ResetType reset_type); |