k_client_session.h 942 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <string>
  5. #include "core/hle/kernel/k_auto_object.h"
  6. #include "core/hle/kernel/slab_helpers.h"
  7. #include "core/hle/result.h"
  8. namespace Kernel {
  9. class KernelCore;
  10. class KSession;
  11. class KClientSession final : public KAutoObject {
  12. KERNEL_AUTOOBJECT_TRAITS(KClientSession, KAutoObject);
  13. public:
  14. explicit KClientSession(KernelCore& kernel);
  15. ~KClientSession() override;
  16. void Initialize(KSession* parent) {
  17. // Set member variables.
  18. m_parent = parent;
  19. }
  20. void Destroy() override;
  21. KSession* GetParent() const {
  22. return m_parent;
  23. }
  24. Result SendSyncRequest(uintptr_t address, size_t size);
  25. Result SendAsyncRequest(KEvent* event, uintptr_t address, size_t size);
  26. void OnServerClosed();
  27. private:
  28. KSession* m_parent{};
  29. };
  30. } // namespace Kernel