interface.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2018 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. #include "core/hle/service/nvdrv/nvdrv.h"
  7. #include "core/hle/service/service.h"
  8. namespace Kernel {
  9. class WritableEvent;
  10. }
  11. namespace Service::Nvidia {
  12. class NVDRV final : public ServiceFramework<NVDRV> {
  13. public:
  14. NVDRV(std::shared_ptr<Module> nvdrv, const char* name);
  15. ~NVDRV() override;
  16. void SignalGPUInterruptSyncpt(const u32 syncpoint_id, const u32 value);
  17. private:
  18. void Open(Kernel::HLERequestContext& ctx);
  19. void Ioctl1(Kernel::HLERequestContext& ctx);
  20. void Ioctl2(Kernel::HLERequestContext& ctx);
  21. void Ioctl3(Kernel::HLERequestContext& ctx);
  22. void Close(Kernel::HLERequestContext& ctx);
  23. void Initialize(Kernel::HLERequestContext& ctx);
  24. void QueryEvent(Kernel::HLERequestContext& ctx);
  25. void SetAruid(Kernel::HLERequestContext& ctx);
  26. void SetGraphicsFirmwareMemoryMarginEnabled(Kernel::HLERequestContext& ctx);
  27. void GetStatus(Kernel::HLERequestContext& ctx);
  28. void DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx);
  29. void ServiceError(Kernel::HLERequestContext& ctx, NvResult result);
  30. std::shared_ptr<Module> nvdrv;
  31. u64 pid{};
  32. bool initialized{};
  33. };
  34. } // namespace Service::Nvidia