object.cpp 989 B

1234567891011121314151617181920212223242526272829303132333435363738
  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::ReadableEvent:
  13. case HandleType::Thread:
  14. case HandleType::Process:
  15. case HandleType::ServerPort:
  16. case HandleType::ServerSession:
  17. return true;
  18. case HandleType::Unknown:
  19. case HandleType::WritableEvent:
  20. case HandleType::SharedMemory:
  21. case HandleType::TransferMemory:
  22. case HandleType::ResourceLimit:
  23. case HandleType::ClientPort:
  24. case HandleType::ClientSession:
  25. case HandleType::Session:
  26. return false;
  27. }
  28. UNREACHABLE();
  29. return false;
  30. }
  31. } // namespace Kernel