From 423679983259948c203e546887445a59b64fc32f Mon Sep 17 00:00:00 2001 From: bunnei Date: Mon, 8 Jan 2018 21:41:37 -0500 Subject: kernel: Rename Semaphore to ConditionVariable. --- src/core/hle/kernel/semaphore.cpp | 64 --------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 src/core/hle/kernel/semaphore.cpp (limited to 'src/core/hle/kernel/semaphore.cpp') diff --git a/src/core/hle/kernel/semaphore.cpp b/src/core/hle/kernel/semaphore.cpp deleted file mode 100644 index b555bb28e..000000000 --- a/src/core/hle/kernel/semaphore.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "common/assert.h" -#include "core/hle/kernel/errors.h" -#include "core/hle/kernel/kernel.h" -#include "core/hle/kernel/object_address_table.h" -#include "core/hle/kernel/semaphore.h" -#include "core/hle/kernel/thread.h" - -namespace Kernel { - -Semaphore::Semaphore() {} -Semaphore::~Semaphore() {} - -ResultVal> Semaphore::Create(VAddr guest_addr, VAddr mutex_addr, - std::string name) { - SharedPtr semaphore(new Semaphore); - - semaphore->name = std::move(name); - semaphore->guest_addr = guest_addr; - semaphore->mutex_addr = mutex_addr; - - // Semaphores are referenced by guest address, so track this in the kernel - g_object_address_table.Insert(guest_addr, semaphore); - - return MakeResult>(std::move(semaphore)); -} - -bool Semaphore::ShouldWait(Thread* thread) const { - return GetAvailableCount() <= 0; -} - -void Semaphore::Acquire(Thread* thread) { - if (GetAvailableCount() <= 0) - return; - - SetAvailableCount(GetAvailableCount() - 1); -} - -ResultCode Semaphore::Release(s32 target) { - if (target == -1) { - // When -1, wake up all waiting threads - SetAvailableCount(GetWaitingThreads().size()); - WakeupAllWaitingThreads(); - } else { - // Otherwise, wake up just a single thread - SetAvailableCount(target); - WakeupWaitingThread(GetHighestPriorityReadyThread()); - } - - return RESULT_SUCCESS; -} - -s32 Semaphore::GetAvailableCount() const { - return Memory::Read32(guest_addr); -} - -void Semaphore::SetAvailableCount(s32 value) const { - Memory::Write32(guest_addr, value); -} - -} // namespace Kernel -- cgit v1.2.3