summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/mutex.cpp1
-rw-r--r--src/core/hle/service/am/am.cpp7
-rw-r--r--src/core/hle/service/am/am.h1
-rw-r--r--src/core/hle/service/hid/hid.cpp16
4 files changed, 23 insertions, 2 deletions
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp
index 4e86eb918..0b9dc700c 100644
--- a/src/core/hle/kernel/mutex.cpp
+++ b/src/core/hle/kernel/mutex.cpp
@@ -70,6 +70,7 @@ ResultCode Mutex::Release(Thread* thread) {
70 holding_thread->held_mutexes.erase(this); 70 holding_thread->held_mutexes.erase(this);
71 holding_thread->UpdatePriority(); 71 holding_thread->UpdatePriority();
72 SetHoldingThread(nullptr); 72 SetHoldingThread(nullptr);
73 SetHasWaiters(!GetWaitingThreads().empty());
73 WakeupAllWaitingThreads(); 74 WakeupAllWaitingThreads();
74 Core::System::GetInstance().PrepareReschedule(); 75 Core::System::GetInstance().PrepareReschedule();
75 76
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index eb4a04c53..b3341d9ad 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -270,6 +270,7 @@ private:
270IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") { 270IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") {
271 static const FunctionInfo functions[] = { 271 static const FunctionInfo functions[] = {
272 {1, &IApplicationFunctions::PopLaunchParameter, "PopLaunchParameter"}, 272 {1, &IApplicationFunctions::PopLaunchParameter, "PopLaunchParameter"},
273 {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"},
273 {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"}, 274 {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"},
274 {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"}, 275 {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"},
275 {66, &IApplicationFunctions::InitializeGamePlayRecording, "InitializeGamePlayRecording"}, 276 {66, &IApplicationFunctions::InitializeGamePlayRecording, "InitializeGamePlayRecording"},
@@ -299,6 +300,12 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) {
299 LOG_DEBUG(Service_AM, "called"); 300 LOG_DEBUG(Service_AM, "called");
300} 301}
301 302
303void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) {
304 LOG_WARNING(Service, "(STUBBED) called");
305 IPC::ResponseBuilder rb{ctx, 2};
306 rb.Push(RESULT_SUCCESS);
307}
308
302void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { 309void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) {
303 // Takes an input u32 Result, no output. 310 // Takes an input u32 Result, no output.
304 // For example, in some cases official apps use this with error 0x2A2 then uses svcBreak. 311 // For example, in some cases official apps use this with error 0x2A2 then uses svcBreak.
diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h
index b603c17dd..0f17f8377 100644
--- a/src/core/hle/service/am/am.h
+++ b/src/core/hle/service/am/am.h
@@ -100,6 +100,7 @@ public:
100 100
101private: 101private:
102 void PopLaunchParameter(Kernel::HLERequestContext& ctx); 102 void PopLaunchParameter(Kernel::HLERequestContext& ctx);
103 void EnsureSaveData(Kernel::HLERequestContext& ctx);
103 void SetTerminateResult(Kernel::HLERequestContext& ctx); 104 void SetTerminateResult(Kernel::HLERequestContext& ctx);
104 void GetDesiredLanguage(Kernel::HLERequestContext& ctx); 105 void GetDesiredLanguage(Kernel::HLERequestContext& ctx);
105 void InitializeGamePlayRecording(Kernel::HLERequestContext& ctx); 106 void InitializeGamePlayRecording(Kernel::HLERequestContext& ctx);
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index be058a64e..9c2e405ee 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -174,12 +174,12 @@ public:
174 static const FunctionInfo functions[] = { 174 static const FunctionInfo functions[] = {
175 {0, &Hid::CreateAppletResource, "CreateAppletResource"}, 175 {0, &Hid::CreateAppletResource, "CreateAppletResource"},
176 {1, &Hid::ActivateDebugPad, "ActivateDebugPad"}, 176 {1, &Hid::ActivateDebugPad, "ActivateDebugPad"},
177 {11, nullptr, "ActivateTouchScreen"}, 177 {11, &Hid::ActivateTouchScreen, "ActivateTouchScreen"},
178 {66, &Hid::StartSixAxisSensor, "StartSixAxisSensor"}, 178 {66, &Hid::StartSixAxisSensor, "StartSixAxisSensor"},
179 {100, &Hid::SetSupportedNpadStyleSet, "SetSupportedNpadStyleSet"}, 179 {100, &Hid::SetSupportedNpadStyleSet, "SetSupportedNpadStyleSet"},
180 {102, &Hid::SetSupportedNpadIdType, "SetSupportedNpadIdType"}, 180 {102, &Hid::SetSupportedNpadIdType, "SetSupportedNpadIdType"},
181 {103, &Hid::ActivateNpad, "ActivateNpad"}, 181 {103, &Hid::ActivateNpad, "ActivateNpad"},
182 {120, nullptr, "SetNpadJoyHoldType"}, 182 {120, &Hid::SetNpadJoyHoldType, "SetNpadJoyHoldType"},
183 {124, nullptr, "SetNpadJoyAssignmentModeDual"}, 183 {124, nullptr, "SetNpadJoyAssignmentModeDual"},
184 {203, &Hid::CreateActiveVibrationDeviceList, "CreateActiveVibrationDeviceList"}, 184 {203, &Hid::CreateActiveVibrationDeviceList, "CreateActiveVibrationDeviceList"},
185 }; 185 };
@@ -207,6 +207,12 @@ private:
207 LOG_WARNING(Service_HID, "(STUBBED) called"); 207 LOG_WARNING(Service_HID, "(STUBBED) called");
208 } 208 }
209 209
210 void ActivateTouchScreen(Kernel::HLERequestContext& ctx) {
211 IPC::ResponseBuilder rb{ctx, 2};
212 rb.Push(RESULT_SUCCESS);
213 LOG_WARNING(Service_HID, "(STUBBED) called");
214 }
215
210 void StartSixAxisSensor(Kernel::HLERequestContext& ctx) { 216 void StartSixAxisSensor(Kernel::HLERequestContext& ctx) {
211 IPC::ResponseBuilder rb{ctx, 2}; 217 IPC::ResponseBuilder rb{ctx, 2};
212 rb.Push(RESULT_SUCCESS); 218 rb.Push(RESULT_SUCCESS);
@@ -231,6 +237,12 @@ private:
231 LOG_WARNING(Service_HID, "(STUBBED) called"); 237 LOG_WARNING(Service_HID, "(STUBBED) called");
232 } 238 }
233 239
240 void SetNpadJoyHoldType(Kernel::HLERequestContext& ctx) {
241 IPC::ResponseBuilder rb{ctx, 2};
242 rb.Push(RESULT_SUCCESS);
243 LOG_WARNING(Service_HID, "(STUBBED) called");
244 }
245
234 void CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) { 246 void CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) {
235 IPC::ResponseBuilder rb{ctx, 2, 0, 1}; 247 IPC::ResponseBuilder rb{ctx, 2, 0, 1};
236 rb.Push(RESULT_SUCCESS); 248 rb.Push(RESULT_SUCCESS);