Lioncash
8a509e5a2c
general: Replace NonCopyable struct with equivalents
4 years ago
Lioncash
2c2e08df02
general: Move deleted copy/move constructor/assignment operators to public interface
This allows for better compiler errors, where the compiler will state a
copy or move couldn't occur due to the relevant function being deleted.
Previously a compiler would warn about the relevant function not being
accessible (which, while true, isn't as informative as it could be).
4 years ago
bunnei
1552c524ad
hle: kernel: KPageTable: Migrate locks to KScopedLightLock.
- More accurately reflects real kernel behavior by using guest locks.
4 years ago
Narr the Reg
33594225c7
svc: Add 32 bit SynchronizePreemptionState
Used by Espgaluda II
4 years ago
bunnei
1b8ed3a76d
hle: kernel: KScheduler: Fix deadlock with core waiting for a thread lock that has migrated.
- Previously, it was possible for a thread migration to occur from core A to core B.
- Next, core B waits on a guest lock that must be released by a thread queued for core A.
- Meanwhile, core A is still waiting on the core B's current thread lock - resulting in a deadlock.
- Fix this by try-locking the thread lock.
- Fixes softlocks in FF8 and Pokemon Legends Arceus.
4 years ago
Lioncash
1e57fbe71d
kernel/k_affinity_mask: Remove duplicated assert
This is already checked inside GetCoreBit()
4 years ago
german77
1fca7203d3
input_common: Add option to configure gyro threshold
4 years ago
bunnei
a2731424a6
hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.
- Previously implementation was incorrect, and would occasionally underflow.
4 years ago
bunnei
912b6b9ef4
core: hle: kernel: KPageTable: Various improvements to MapPages and UnmapPages.
4 years ago
bunnei
c46f07a62a
core: hle: kernel: KPageTable: MapProcessCode: Various cleanup.
4 years ago
bunnei
4f848b6f68
core: hle: kernel: KPageTable: ReserveTransferMemory: Various cleanup.
4 years ago
bunnei
bf904afa0f
core: hle: kernel: KPageTable: ResetTransferMemory: Various cleanup.
4 years ago
bunnei
1b3dd42de4
core: hle: kernel: KPageTable: SetMemoryAttribute: Various cleanup.
4 years ago
bunnei
05918a20c3
core: hle: kernel: KPageTable: Assert valid address on GetPhysicalAddr.
4 years ago
bunnei
a8476d9db0
core: hle: kernel: KPageTable: Operate: Assert lock ownership.
4 years ago
bunnei
8f3c7cb89b
core: hle: kernel: KPageTable: SetHeapSize: Cleanup & take physical memory lock.
4 years ago
bunnei
24efadee60
core: hle: kernel: Refactor Un/MapPhysicalMemory to remove unnecessary methods.
4 years ago
bunnei
ebb9ec197e
core: hle: kernel: Rename Un/Map to Un/MapMeory.
4 years ago
bunnei
b3f8d2491d
hle: kernel: KThread: Ensure host (dummy) threads block on locking.
- But do not enter the priority queue, as otherwise they will be scheduled.
- Allows dummy threads to use guest synchronization primitives.
4 years ago
Lioncash
46d9dc557c
service/wlan: Update function tables
4 years ago
Lioncash
3599c5f7c8
service/usb: Update function tables
4 years ago
Lioncash
50af00640b
service/set: Update function tables
4 years ago
Lioncash
114ce2ae13
service/ns: Update function tables
4 years ago
Lioncash
41f1cceefe
service/nim: Update unknown function table entries
4 years ago
Lioncash
cc5f02e0a5
service/friend: Update unknown function table entries
4 years ago
Lioncash
ee4adcada2
service/filsystem: Update fsp-srv function table
4 years ago
Lioncash
2495e8d6e1
service/btm: Update function tables
4 years ago
Lioncash
74a98a01de
service/audio: Update audctl unknown function names
4 years ago
Lioncash
aa0d0e91a0
service/am: Update omm function tables
4 years ago
Lioncash
1a50cb9468
service/acc: Update unknown function names
Switchbrew has the function names now.
4 years ago
Morph
00dc684fb0
service: apm: Stub ISession SetCpuOverclockEnabled
Since we don't currently support CPU overclocking within the emulated system, this can be stubbed for now, like APM IsCpuOverclockEnabled.
- Used by Gravity Rider Zero
4 years ago
bunnei
8f2630de0a
hle: kernel: Remove redundant tracking of dummy threads.
- These are already tracked by kernel's registered_objects member.
4 years ago
bunnei
f2e870d6b6
hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.
4 years ago
bunnei
668af26696
hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.
4 years ago
bunnei
db3c11506b
hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on thread exit.
4 years ago
bunnei
e885b0ab0d
hle: kernel: KServerSession: Remove hack for CompleteSyncRequest.
- This does not appear to be necessary anymore.
4 years ago
bunnei
af11abed3f
hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait.
- Considering is_thread_waiting is never set, so we can remove IsThreadWaiting.
- KThread::EndWait will take the scheduler lock, so we can remove the redundant lock.
4 years ago
bunnei
247a7e2205
hle: kernel: KThread: Ensure dummy threads never call EndWait.
- These are only used by host threads for locking and will never have a wait_queue.
4 years ago
bunnei
f1e06f984d
hle: kernel: KScheduler: Ensure dummy threads are never scheduled.
- These are only used by host threads for locking.
4 years ago
bunnei
cc4cbff1ca
hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.
- This will be used to ensure that we do not schedule dummy threads.
4 years ago
german77
d678dfda6e
service/hid: Initialize applet_resource on SetNpadAnalogStickUseCenterClamp
4 years ago
Valeri
01852ee857
hle: remove no-op code
Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there.
4 years ago
Valeri
8b3ea1258c
hid: fix std::transform call
Found by static analysis with PVS-Studio.
4 years ago
Valeri
347574b398
Correct assignment source for rotations
Found by static analysis with PVS-Studio
4 years ago
bunnei
4148fde355
hle: kernel: k_memory_manager: Clear pages on allocation & free.
- Heap pages should be zero'd.
- Also explicitly passed along heap allocation option.
4 years ago
bunnei
b52516263d
core: hle: kernel: KThread: Integrate with KWorkerTask and implement DoWorkerTaskImpl.
- This is used to terminate a thread asynchronously after it has been exited.
- This fixes a crash that can occur in Pokemon Sword/Shield because a thread is incorrectly closed on svcExitThread, then, the thread is destroyed on svcCloseHandle while it is still scheduled.
- Instead, we now wait for the thread to no longer be scheduled on all cores before destroying it from KWorkerTaskManager, which is accurate to HOS behavior.
4 years ago
bunnei
18969b5d8e
core: hle: kernel: KProcess: Integrate with KWorkerTask and add unimplemented DoWorkerTaskImpl.
4 years ago
bunnei
914431487b
core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.
- This makes our implementations of these more closely match HOS.
4 years ago
bunnei
b6bf119a43
core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.
4 years ago
bunnei
b722faaf7a
core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
4 years ago