cpu_interrupt_handler.h 824 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2020 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. namespace Common {
  7. class Event;
  8. }
  9. namespace Core {
  10. class CPUInterruptHandler {
  11. public:
  12. CPUInterruptHandler();
  13. ~CPUInterruptHandler();
  14. CPUInterruptHandler(const CPUInterruptHandler&) = delete;
  15. CPUInterruptHandler& operator=(const CPUInterruptHandler&) = delete;
  16. CPUInterruptHandler(CPUInterruptHandler&&) = default;
  17. CPUInterruptHandler& operator=(CPUInterruptHandler&&) = default;
  18. bool IsInterrupted() const {
  19. return is_interrupted;
  20. }
  21. void SetInterrupt(bool is_interrupted);
  22. void AwaitInterrupt();
  23. private:
  24. bool is_interrupted{};
  25. std::unique_ptr<Common::Event> interrupt_event;
  26. };
  27. } // namespace Core