Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2fb0bbff29 
							
						 
					 
					
						
						
							
							scheduler: Initialize class members directly where applicable  
						
						... 
						
						
						
						Reduces the overall amount of code. 
						
						
					 
					
						2019-10-27 22:13:55 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2dc469ceba 
							
						 
					 
					
						
						
							
							scheduler: Amend documentation comments  
						
						... 
						
						
						
						Adjusts the formatting of a few of the comments an ensures they get
recognized as proper Doxygen comments. 
						
						
					 
					
						2019-10-27 22:12:32 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							64e652d8cb 
							
						 
					 
					
						
						
							
							Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.  
						
						
						
						
					 
					
						2019-10-15 11:55:30 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							e28c7f5217 
							
						 
					 
					
						
						
							
							Kernel: Address Feedback 2  
						
						
						
						
					 
					
						2019-10-15 11:55:28 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							a3524879be 
							
						 
					 
					
						
						
							
							Kernel: Clang Format  
						
						
						
						
					 
					
						2019-10-15 11:55:27 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							c32520ceb7 
							
						 
					 
					
						
						
							
							Kernel: Reverse global accessor removal.  
						
						
						
						
					 
					
						2019-10-15 11:55:26 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							3073615dbc 
							
						 
					 
					
						
						
							
							Kernel: Address Feedback.  
						
						
						
						
					 
					
						2019-10-15 11:55:25 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							25f8606a6d 
							
						 
					 
					
						
						
							
							Kernel Scheduler: Make sure the global scheduler shutdowns correctly.  
						
						
						
						
					 
					
						2019-10-15 11:55:24 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b3c1deba49 
							
						 
					 
					
						
						
							
							Kernel_Thread: Eliminate most global accessors.  
						
						
						
						
					 
					
						2019-10-15 11:55:23 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							0b72b34d89 
							
						 
					 
					
						
						
							
							KernelSVC: Assert that condition variable address is aligned to 4 bytes.  
						
						
						
						
					 
					
						2019-10-15 11:55:22 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							96b1b144af 
							
						 
					 
					
						
						
							
							Kernel: Correct Paused scheduling  
						
						
						
						
					 
					
						2019-10-15 11:55:21 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							1c6a11ab14 
							
						 
					 
					
						
						
							
							Kernel: Corrections to Wait Objects clearing in which a thread could still be signalled after a timeout or a cancel.  
						
						
						
						
					 
					
						2019-10-15 11:55:20 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							27d571c084 
							
						 
					 
					
						
						
							
							Kernel: Correct redundant yields to only advance time forward.  
						
						
						
						
					 
					
						2019-10-15 11:55:20 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							7176857177 
							
						 
					 
					
						
						
							
							Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual  
						
						
						
						
					 
					
						2019-10-15 11:55:19 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							44e09e5f21 
							
						 
					 
					
						
						
							
							Kernel: Correct Results in Condition Variables and Mutexes  
						
						
						
						
					 
					
						2019-10-15 11:55:18 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							1ec1e81373 
							
						 
					 
					
						
						
							
							Kernel: Clang Format  
						
						
						
						
					 
					
						2019-10-15 11:55:17 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							e05a8c2385 
							
						 
					 
					
						
						
							
							Kernel: Remove global system accessor from WaitObject  
						
						
						
						
					 
					
						2019-10-15 11:55:16 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							0cf26cee59 
							
						 
					 
					
						
						
							
							Scheduler: Implement Yield Count and Core migration on Thread Preemption.  
						
						
						
						
					 
					
						2019-10-15 11:55:16 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							2d382de6fa 
							
						 
					 
					
						
						
							
							Scheduler: Corrections to YieldAndBalanceLoad and Yield bombing protection.  
						
						
						
						
					 
					
						2019-10-15 11:55:15 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b49c0dab87 
							
						 
					 
					
						
						
							
							Kernel: Initial implementation of thread preemption.  
						
						
						
						
					 
					
						2019-10-15 11:55:14 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							103f3a2fe5 
							
						 
					 
					
						
						
							
							Scheduler: Add protections for Yield bombing  
						
						... 
						
						
						
						In case of redundant yields, the scheduler will now idle the core for 
it's timeslice, in order to avoid continuously yielding the same thing 
over and over. 
						
						
					 
					
						2019-10-15 11:55:13 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							82218c925a 
							
						 
					 
					
						
						
							
							Kernel: Style and Corrections  
						
						
						
						
					 
					
						2019-10-15 11:55:12 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							fcc6b34fff 
							
						 
					 
					
						
						
							
							Correct PrepareReschedule  
						
						
						
						
					 
					
						2019-10-15 11:55:12 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							3a94e7ea33 
							
						 
					 
					
						
						
							
							Comment and reorganize the scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:11 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b5d1e44782 
							
						 
					 
					
						
						
							
							Add PrepareReschedule where required.  
						
						
						
						
					 
					
						2019-10-15 11:55:10 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b8b7ebcece 
							
						 
					 
					
						
						
							
							Correct compiling errors and addapt to the new interface.  
						
						
						
						
					 
					
						2019-10-15 11:55:09 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							9031502974 
							
						 
					 
					
						
						
							
							Correct Supervisor Calls to work with the new scheduler,  
						
						
						
						
					 
					
						2019-10-15 11:55:08 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							57a71f899a 
							
						 
					 
					
						
						
							
							Add interfacing to the Global Scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:07 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							a1ac0c6cb4 
							
						 
					 
					
						
						
							
							Addapt thread class to the new Scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:06 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							b164d8ee53 
							
						 
					 
					
						
						
							
							Implement a new Core Scheduler  
						
						
						
						
					 
					
						2019-10-15 11:55:04 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							f1382cf0e7 
							
						 
					 
					
						
						
							
							core: Remove Core::CurrentProcess()  
						
						... 
						
						
						
						This only encourages the use of the global system instance (which will
be phased out long-term). Instead, we use the direct system function
call directly to remove the appealing but discouraged short-hand. 
						
						
					 
					
						2019-10-06 13:53:12 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							f763e23083 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Correct doxygen comment parameter tags for MapPhysicalMemory/UnmapPhysicalMemory  
						
						... 
						
						
						
						Corrects the parameter names within the doxygen comments so that they
resolve properly. 
						
						
					 
					
						2019-09-04 19:58:55 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							b0da7e4262 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Move variables closer to usage spots in MapPhysicalMemory/UnmapPhysicalMemory  
						
						... 
						
						
						
						Narrows the scope of variables down to where they're only necessary. 
						
						
					 
					
						2019-09-04 19:58:52 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							96cc9a9279 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Correct behavior in failure case of UnmapPhysicalMemory()  
						
						... 
						
						
						
						If an unmapping operation fails, we shouldn't be decrementing the amount
of memory mapped and returning that the operation was successful. We
should actually be returning the error code in this case. 
						
						
					 
					
						2019-08-29 19:29:43 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							56c6f767ae 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Reserve memory ahead of time for slow path in MergeAdjacentVMA  
						
						... 
						
						
						
						Avoids potentially expensive (depending on the size of the memory block)
allocations by reserving the necessary memory before performing both
insertions. This avoids scenarios where the second insert may cause a
reallocation to occur. 
						
						
					 
					
						2019-08-29 19:29:43 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							a43ee8d752 
							
						 
					 
					
						
						
							
							kernel/vm_manager: std::move shared_ptr instance in MergeAdjacentVMA  
						
						... 
						
						
						
						Avoids an unnecessary atomic reference count increment and decrement. 
						
						
					 
					
						2019-08-29 19:28:58 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							785c4946dd 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Deduplicate iterator creation in MergeAdjacentVMA  
						
						... 
						
						
						
						Avoids needing to read the same long sequence of code in both code
paths. Also makes it slightly nicer to read and debug, as the locals
will be able to be shown in the debugger. 
						
						
					 
					
						2019-08-29 19:28:57 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							70485e690b 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Simplify some std::vector constructor calls  
						
						... 
						
						
						
						Same behavior, one less magic constant to read. 
						
						
					 
					
						2019-08-29 19:28:04 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							3f695333cd 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Simplify some assertion messages  
						
						... 
						
						
						
						Assertions already log out the function name, so there's no need to
manually include the function name in the assertion strings. 
						
						
					 
					
						2019-08-29 19:26:42 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							024b5fe91a 
							
						 
					 
					
						
						
							
							Kernel: Address Feedback  
						
						
						
						
					 
					
						2019-07-19 11:28:57 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							9bede4eeed 
							
						 
					 
					
						
						
							
							VM_Manager: Align allocated memory to 256bytes  
						
						... 
						
						
						
						This commit ensures that all backing memory allocated for the Guest CPU
is aligned to 256 bytes. This due to how gpu memory works and the heavy
constraints it has in the alignment of physical memory. 
						
						
					 
					
						2019-07-19 10:06:08 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							5d369112d9 
							
						 
					 
					
						
						
							
							Merge pull request  #2687  from lioncash/tls-process  
						
						... 
						
						
						
						kernel/process: Allocate the process' TLS region during initialization 
						
						
					 
					
						2019-07-18 13:53:04 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							5e457bf258 
							
						 
					 
					
						
						
							
							Kernel: Downgrade WaitForAddress and SignalToAddress messages to Trace.  
						
						... 
						
						
						
						This messages were originally set as warnning since few games used these
svcs and it was needed for debugging. This is no longer the case. 
						
						
					 
					
						2019-07-17 22:05:47 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4882c058fd 
							
						 
					 
					
						
						
							
							Merge pull request  #2690  from SciresM/physmem_fixes  
						
						... 
						
						
						
						Implement MapPhysicalMemory/UnmapPhysicalMemory 
						
						
					 
					
						2019-07-14 09:16:46 -04:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							d4fc560c05 
							
						 
					 
					
						
						
							
							Remove unicorn mappings/unmappings  
						
						
						
						
					 
					
						2019-07-11 15:12:33 -07:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							79c382fafd 
							
						 
					 
					
						
						
							
							Merge pull request  #2717  from SciresM/unmirror_memory  
						
						... 
						
						
						
						Restore memory perms on svcUnmapMemory/UnloadNro 
						
						
					 
					
						2019-07-11 14:57:20 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							70624e1c1d 
							
						 
					 
					
						
						
							
							core/arm: Remove obsolete Unicorn memory mapping  
						
						... 
						
						
						
						This was initially necessary when AArch64 JIT emulation was in its
infancy and all memory-related instructions weren't implemented.
Given the JIT now has all of these facilities implemented, we can remove
these functions from the CPU interface. 
						
						
					 
					
						2019-07-11 05:35:46 -04:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							072a9796f5 
							
						 
					 
					
						
						
							
							Restore memory perms on svcUnmapMemory/UnloadNro  
						
						... 
						
						
						
						Prior to PR, Yuzu did not restore memory to RW-
on unmap of mirrored memory or unloading of NRO.
(In fact, in the NRO case, the memory was unmapped
instead of reprotected to --- on Load, so it was
actually lost entirely...)
This PR addresses that, and restores memory to RW-
as it should.
This fixes a crash in Super Smash Bros when creating
a World of Light save for the first time, and possibly
other games/circumstances. 
						
						
					 
					
						2019-07-11 01:38:28 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							697206092e 
							
						 
					 
					
						
						
							
							Prevent merging of device mapped memory blocks.  
						
						... 
						
						
						
						This sets the DeviceMapped attribute for GPU-mapped memory blocks,
and prevents merging device mapped blocks. This prevents memory
mapped from the gpu from having its backing address changed by
block coalesce. 
						
						
					 
					
						2019-07-08 22:52:05 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							ca6f08e3b1 
							
						 
					 
					
						
						
							
							Remove unused member function declaration  
						
						
						
						
					 
					
						2019-07-07 13:02:41 -07:00