Narr the Reg 
							
						 
					 
					
						
						
						
						
							
						
						
							d0c7c3f64f 
							
						 
					 
					
						
						
							
							svc: Set unique names for function tables  
						
						
						
						
					 
					
						2022-02-08 21:03:31 -06:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							862dddf8c9 
							
						 
					 
					
						
						
							
							hle: kernel: KCodeMemory: Remove unused QueryMemory.  
						
						
						
						
					 
					
						2022-02-08 18:49:41 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d134ca68c6 
							
						 
					 
					
						
						
							
							hle: kernel: KCodeMemory: Correct m_page_group number of pages.  
						
						... 
						
						
						
						Credits to @xerpi for finding this issue and pointing it out on #7519 . 
						
						
					 
					
						2022-02-08 18:47:11 -08:00 
						 
				 
			
				
					
						
							
							
								tech-ticks 
							
						 
					 
					
						
						
						
						
							
						
						
							16bf50e610 
							
						 
					 
					
						
						
							
							service: pm: Implement AtmosphereGetProcessInfo  
						
						
						
						
					 
					
						2022-02-04 01:41:36 +01:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							03186af6a1 
							
						 
					 
					
						
						
							
							Merge pull request  #7835  from bunnei/page-table-lock  
						
						... 
						
						
						
						hle: kernel: KPageTable: Migrate locks to KScopedLightLock. 
						
						
					 
					
						2022-02-02 17:58:55 -07:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							f785f73e92 
							
						 
					 
					
						
						
							
							general: Replace NonCopyable struct with equivalents  
						
						
						
						
					 
					
						2022-02-02 13:17:12 -05:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							76d83ffbec 
							
						 
					 
					
						
						
							
							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). 
						
						
					 
					
						2022-02-02 12:17:08 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							995e27e9b7 
							
						 
					 
					
						
						
							
							hle: kernel: KPageTable: Migrate locks to KScopedLightLock.  
						
						... 
						
						
						
						- More accurately reflects real kernel behavior by using guest locks. 
						
						
					 
					
						2022-02-01 19:34:24 -08:00 
						 
				 
			
				
					
						
							
							
								Narr the Reg 
							
						 
					 
					
						
						
						
						
							
						
						
							1ed22b4613 
							
						 
					 
					
						
						
							
							svc: Add 32 bit SynchronizePreemptionState  
						
						... 
						
						
						
						Used by Espgaluda II 
						
						
					 
					
						2022-01-31 19:02:41 -06:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							3a1a3dd0db 
							
						 
					 
					
						
						
							
							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. 
						
						
					 
					
						2022-01-27 12:17:14 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							adcac857f8 
							
						 
					 
					
						
						
							
							Merge pull request  #7762  from bunnei/un-map-improve  
						
						... 
						
						
						
						Kernel Memory Updates (Part 4): Improve Un/MapPages, and more. 
						
						
					 
					
						2022-01-26 17:54:20 -08:00 
						 
				 
			
				
					
						
							
							
								Morph 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8dbad556ec 
							
						 
					 
					
						
						
							
							Merge pull request  #7771  from lioncash/assert  
						
						... 
						
						
						
						kernel/k_affinity_mask: Remove duplicated assert 
						
						
					 
					
						2022-01-25 16:15:18 -05:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2f12caccf9 
							
						 
					 
					
						
						
							
							kernel/k_affinity_mask: Remove duplicated assert  
						
						... 
						
						
						
						This is already checked inside GetCoreBit() 
						
						
					 
					
						2022-01-24 10:35:22 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							59add00d4a 
							
						 
					 
					
						
						
							
							hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.  
						
						... 
						
						
						
						- Previously implementation was incorrect, and would occasionally underflow. 
						
						
					 
					
						2022-01-22 21:09:45 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							e791da9791 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: Various improvements to MapPages and UnmapPages.  
						
						
						
						
					 
					
						2022-01-22 20:51:34 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							07add23251 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: MapProcessCode: Various cleanup.  
						
						
						
						
					 
					
						2022-01-22 20:51:34 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							ee25e0a40b 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: ReserveTransferMemory: Various cleanup.  
						
						
						
						
					 
					
						2022-01-22 20:51:34 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							0cee5e1af8 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: ResetTransferMemory: Various cleanup.  
						
						
						
						
					 
					
						2022-01-22 20:51:34 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							ffcaf5af90 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: SetMemoryAttribute: Various cleanup.  
						
						
						
						
					 
					
						2022-01-22 20:51:34 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							2935c9d8de 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: Assert valid address on GetPhysicalAddr.  
						
						
						
						
					 
					
						2022-01-22 01:33:26 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							264bb5abf7 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: Operate: Assert lock ownership.  
						
						
						
						
					 
					
						2022-01-22 01:33:26 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							0137f2e6e1 
							
						 
					 
					
						
						
							
							core: hle: kernel: KPageTable: SetHeapSize: Cleanup & take physical memory lock.  
						
						
						
						
					 
					
						2022-01-22 01:33:26 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							6d8e498f76 
							
						 
					 
					
						
						
							
							core: hle: kernel: Refactor Un/MapPhysicalMemory to remove unnecessary methods.  
						
						
						
						
					 
					
						2022-01-22 01:33:26 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							b8b1b58f36 
							
						 
					 
					
						
						
							
							core: hle: kernel: Rename Un/Map to Un/MapMeory.  
						
						
						
						
					 
					
						2022-01-22 01:33:26 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							615fb40416 
							
						 
					 
					
						
						
							
							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. 
						
						
					 
					
						2022-01-21 17:12:06 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							f6815086a1 
							
						 
					 
					
						
						
							
							hle: kernel: Remove redundant tracking of dummy threads.  
						
						... 
						
						
						
						- These are already tracked by kernel's registered_objects member. 
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							91ff6d4cb3 
							
						 
					 
					
						
						
							
							hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.  
						
						
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							46a620f9d7 
							
						 
					 
					
						
						
							
							hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.  
						
						
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							0b37e7cb39 
							
						 
					 
					
						
						
							
							hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on thread exit.  
						
						
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							384e24d3e9 
							
						 
					 
					
						
						
							
							hle: kernel: KServerSession: Remove hack for CompleteSyncRequest.  
						
						... 
						
						
						
						- This does not appear to be necessary anymore. 
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							ad53dc22fd 
							
						 
					 
					
						
						
							
							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. 
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							5ffec69dc7 
							
						 
					 
					
						
						
							
							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. 
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							11a380c3da 
							
						 
					 
					
						
						
							
							hle: kernel: KScheduler: Ensure dummy threads are never scheduled.  
						
						... 
						
						
						
						- These are only used by host threads for locking. 
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							f6cbb14dce 
							
						 
					 
					
						
						
							
							hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.  
						
						... 
						
						
						
						- This will be used to ensure that we do not schedule dummy threads. 
						
						
					 
					
						2022-01-20 17:08:00 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b5e83bcc7b 
							
						 
					 
					
						
						
							
							Merge pull request  #7701  from bunnei/clear-mem-pages  
						
						... 
						
						
						
						Kernel Memory Updates (Part 3): Clear KMemoryManager pages & other fixes 
						
						
					 
					
						2022-01-18 21:20:42 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							101d86897b 
							
						 
					 
					
						
						
							
							Merge pull request  #7712  from bunnei/fix-thread-exit  
						
						... 
						
						
						
						Accurately implement thread exit 
						
						
					 
					
						2022-01-17 18:08:24 -08:00 
						 
				 
			
				
					
						
							
							
								Valeri 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							84786dde00 
							
						 
					 
					
						
						
							
							hle: remove no-op code  
						
						... 
						
						
						
						Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there. 
						
						
					 
					
						2022-01-17 13:51:12 +03:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							b54cbc985e 
							
						 
					 
					
						
						
							
							hle: kernel: k_memory_manager: Clear pages on allocation & free.  
						
						... 
						
						
						
						- Heap pages should be zero'd.
- Also explicitly passed along heap allocation option. 
						
						
					 
					
						2022-01-14 21:16:33 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							f499c8177e 
							
						 
					 
					
						
						
							
							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. 
						
						
					 
					
						2022-01-14 16:44:14 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							d8b3f665db 
							
						 
					 
					
						
						
							
							core: hle: kernel: KProcess: Integrate with KWorkerTask and add unimplemented DoWorkerTaskImpl.  
						
						
						
						
					 
					
						2022-01-14 16:44:14 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							03884b7ea6 
							
						 
					 
					
						
						
							
							core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.  
						
						... 
						
						
						
						- This makes our implementations of these more closely match HOS. 
						
						
					 
					
						2022-01-14 16:44:14 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							c905044e1b 
							
						 
					 
					
						
						
							
							core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.  
						
						
						
						
					 
					
						2022-01-14 16:44:14 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							bf32fcc817 
							
						 
					 
					
						
						
							
							core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.  
						
						... 
						
						
						
						- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess. 
						
						
					 
					
						2022-01-14 16:43:59 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							cc112f971e 
							
						 
					 
					
						
						
							
							hle: kernel: Fix service_threads access to be thread safe V2.  
						
						... 
						
						
						
						- PR #7699  attempted to fix CreateServiceThread and ReleaseServiceThread to be thread safe, but inadvertently introduced a possible dead-lock.
- With this PR, we use a worker thread to manage the service thread list, allowing it only to be accessed by a single thread, and guaranteeing threads will not destroy themselves.
- Fixes a rare crash in Pokemon Sword/Shield, I've now run this game for ~12 hours non-stop and am quite confident this is a good solution for this issue. 
						
						
					 
					
						2022-01-14 16:02:57 -08:00 
						 
				 
			
				
					
						
							
							
								Mai M 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b2d45a4072 
							
						 
					 
					
						
						
							
							Merge pull request  #7699  from bunnei/fix-service-thread-race  
						
						... 
						
						
						
						hle: kernel: Fix service_threads access to be thread safe. 
						
						
					 
					
						2022-01-14 00:46:16 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							2147240e47 
							
						 
					 
					
						
						
							
							hle: kernel: Fix service_threads access to be thread safe.  
						
						... 
						
						
						
						- CreateServiceThread and ReleaseServiceThread can be accessed by different threads, uses a lock to make this thread safe.
- Fixes a rare crash in Pokemon Sword/Shield that can occur when a new service thread is being created while an old one is being destroyed. 
						
						
					 
					
						2022-01-13 21:26:10 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							49a0e4330e 
							
						 
					 
					
						
						
							
							hle: kernel: k_page_table: Update SetProcessMemoryPermission.  
						
						
						
						
					 
					
						2022-01-11 16:28:11 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							6123b6ea45 
							
						 
					 
					
						
						
							
							hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite.  
						
						
						
						
					 
					
						2022-01-11 16:28:11 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							081669c334 
							
						 
					 
					
						
						
							
							hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory.  
						
						
						
						
					 
					
						2022-01-11 16:28:11 -08:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							af4696657c 
							
						 
					 
					
						
						
							
							core: hle: kernel: svc: Updates to SetMemoryAttribute and SetMemoryPermission.  
						
						
						
						
					 
					
						2022-01-08 12:18:14 -08:00