diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-05-30 00:45:30 +0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-05-30 01:16:46 +0200 |
commit | 64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4 (patch) | |
tree | f34182d882d614273dd709f0029039743bc58c21 /src/core/hle/kernel/kernel.h | |
parent | Kernel: Removed HandleTable::GetWaitObject (diff) | |
download | yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.tar yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.tar.gz yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.tar.bz2 yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.tar.lz yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.tar.xz yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.tar.zst yuzu-64ecf81a3cf6d6e0a4e4e915e1da2f0bcf2f1cb4.zip |
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
-rw-r--r-- | src/core/hle/kernel/kernel.h | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 4344264dc..5335a961d 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -17,8 +17,6 @@ namespace Kernel { using Handle = u32; -class Thread; - enum KernelHandle : Handle { CurrentThread = 0xFFFF8000, CurrentProcess = 0xFFFF8001, @@ -133,57 +131,6 @@ inline SharedPtr<T> DynamicObjectCast(SharedPtr<Object> object) { return nullptr; } -/// Class that represents a Kernel object that a thread can be waiting on -class WaitObject : public Object { -public: - /** - * Check if the specified thread should wait until the object is available - * @param thread The thread about which we're deciding. - * @return True if the current thread should wait due to this object being unavailable - */ - virtual bool ShouldWait(Thread* thread) const = 0; - - /// Acquire/lock the object for the specified thread if it is available - virtual void Acquire(Thread* thread) = 0; - - /** - * Add a thread to wait on this object - * @param thread Pointer to thread to add - */ - virtual void AddWaitingThread(SharedPtr<Thread> thread); - - /** - * Removes a thread from waiting on this object (e.g. if it was resumed already) - * @param thread Pointer to thread to remove - */ - virtual void RemoveWaitingThread(Thread* thread); - - /** - * Wake up all threads waiting on this object that can be awoken, in priority order, - * and set the synchronization result and output of the thread. - */ - virtual void WakeupAllWaitingThreads(); - - /// Obtains the highest priority thread that is ready to run from this object's waiting list. - SharedPtr<Thread> GetHighestPriorityReadyThread(); - - /// Get a const reference to the waiting threads list for debug use - const std::vector<SharedPtr<Thread>>& GetWaitingThreads() const; - -private: - /// Threads waiting for this object to become available - std::vector<SharedPtr<Thread>> waiting_threads; -}; - -// Specialization of DynamicObjectCast for WaitObjects -template <> -inline SharedPtr<WaitObject> DynamicObjectCast<WaitObject>(SharedPtr<Object> object) { - if (object != nullptr && object->IsWaitable()) { - return boost::static_pointer_cast<WaitObject>(std::move(object)); - } - return nullptr; -} - /** * This class allows the creation of Handles, which are references to objects that can be tested * for validity and looked up. Here they are used to pass references to kernel objects to/from the |