summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/controllers/applet_resource.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/hid/controllers/applet_resource.h')
-rw-r--r--src/core/hle/service/hid/controllers/applet_resource.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/core/hle/service/hid/controllers/applet_resource.h b/src/core/hle/service/hid/controllers/applet_resource.h
index 3dcec2898..e7991f93a 100644
--- a/src/core/hle/service/hid/controllers/applet_resource.h
+++ b/src/core/hle/service/hid/controllers/applet_resource.h
@@ -8,6 +8,7 @@
#include "common/bit_field.h"
#include "common/common_types.h"
#include "core/hle/result.h"
+#include "core/hle/service/hid/controllers/shared_memory_holder.h"
namespace Core {
class System;
@@ -18,6 +19,8 @@ class KSharedMemory;
}
namespace Service::HID {
+struct SharedMemoryFormat;
+
class AppletResource {
public:
explicit AppletResource(Core::System& system_);
@@ -28,8 +31,11 @@ public:
Result RegisterAppletResourceUserId(u64 aruid, bool enable_input);
void UnregisterAppletResourceUserId(u64 aruid);
+ void FreeAppletResourceId(u64 aruid);
+
u64 GetActiveAruid();
Result GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle, u64 aruid);
+ Result GetSharedMemoryFormat(SharedMemoryFormat** out_shared_memory_format, u64 aruid);
u64 GetIndexFromAruid(u64 aruid);
@@ -42,6 +48,9 @@ public:
void SetIsPalmaConnectable(u64 aruid, bool is_connectable);
void EnablePalmaBoostMode(u64 aruid, bool is_enabled);
+ Result RegisterCoreAppletResource();
+ Result UnregisterCoreAppletResource();
+
private:
static constexpr std::size_t AruidIndexMax = 0x20;
@@ -75,12 +84,14 @@ private:
struct AruidData {
DataStatusFlag flag{};
u64 aruid{};
- Kernel::KSharedMemory* shared_memory_handle{nullptr};
+ SharedMemoryFormat* shared_memory_format{nullptr};
};
u64 active_aruid{};
AruidRegisterList registration_list{};
std::array<AruidData, AruidIndexMax> data{};
+ std::array<SharedMemoryHolder, AruidIndexMax> shared_memory_holder{};
+ s32 ref_counter{};
Core::System& system;
};