object.cpp 925 B

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2018 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include "common/assert.h"
  5. #include "core/hle/kernel/kernel.h"
  6. #include "core/hle/kernel/object.h"
  7. namespace Kernel {
  8. Object::Object(KernelCore& kernel) : kernel{kernel}, object_id{kernel.CreateNewObjectID()} {}
  9. Object::~Object() = default;
  10. bool Object::IsWaitable() const {
  11. switch (GetHandleType()) {
  12. case HandleType::Event:
  13. case HandleType::Thread:
  14. case HandleType::Timer:
  15. case HandleType::ServerPort:
  16. case HandleType::ServerSession:
  17. return true;
  18. case HandleType::Unknown:
  19. case HandleType::SharedMemory:
  20. case HandleType::Process:
  21. case HandleType::AddressArbiter:
  22. case HandleType::ResourceLimit:
  23. case HandleType::ClientPort:
  24. case HandleType::ClientSession:
  25. return false;
  26. }
  27. UNREACHABLE();
  28. }
  29. } // namespace Kernel