diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/kernel/mutex.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/service/am/am.cpp | 7 | ||||
| -rw-r--r-- | src/core/hle/service/am/am.h | 1 | ||||
| -rw-r--r-- | src/core/hle/service/hid/hid.cpp | 16 |
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: | |||
| 270 | IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") { | 270 | IApplicationFunctions::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 | ||
| 303 | void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { | ||
| 304 | LOG_WARNING(Service, "(STUBBED) called"); | ||
| 305 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 306 | rb.Push(RESULT_SUCCESS); | ||
| 307 | } | ||
| 308 | |||
| 302 | void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | 309 | void 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 | ||
| 101 | private: | 101 | private: |
| 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); |