diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-12-16 17:46:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-16 17:46:51 +0100 |
commit | b8f83aa4bf13f6783e31f190d530ef7be527bf49 (patch) | |
tree | 952d90666b0d253dce28742197d053d1db213eeb /src/core/hle/service/hid/controllers/shared_memory_holder.h | |
parent | ssl: fix output byte buffer size issue (#12372) (diff) | |
parent | core: Make sure npad is initialized (diff) | |
download | yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.gz yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.bz2 yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.lz yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.xz yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.zst yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.zip |
Diffstat (limited to 'src/core/hle/service/hid/controllers/shared_memory_holder.h')
-rw-r--r-- | src/core/hle/service/hid/controllers/shared_memory_holder.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/controllers/shared_memory_holder.h b/src/core/hle/service/hid/controllers/shared_memory_holder.h new file mode 100644 index 000000000..943407c00 --- /dev/null +++ b/src/core/hle/service/hid/controllers/shared_memory_holder.h @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "core/hle/result.h" + +namespace Core { +class System; +} + +namespace Kernel { +class KSharedMemory; +} + +namespace Service::HID { +struct SharedMemoryFormat; + +// This is nn::hid::detail::SharedMemoryHolder +class SharedMemoryHolder { +public: + SharedMemoryHolder(); + ~SharedMemoryHolder(); + + Result Initialize(Core::System& system); + void Finalize(); + + bool IsMapped(); + SharedMemoryFormat* GetAddress(); + Kernel::KSharedMemory* GetHandle(); + +private: + bool is_owner{}; + bool is_created{}; + bool is_mapped{}; + INSERT_PADDING_BYTES(0x5); + Kernel::KSharedMemory* shared_memory; + INSERT_PADDING_BYTES(0x38); + SharedMemoryFormat* address = nullptr; +}; +// Correct size is 0x50 bytes +static_assert(sizeof(SharedMemoryHolder) == 0x50, "SharedMemoryHolder is an invalid size"); + +} // namespace Service::HID |