Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							bfb0c87b7b 
							
						 
					 
					
						
						
							
							kernel/error: Amend error code for ERR_PORT_NAME_TOO_LONG  
						
						... 
						
						
						
						We can treat this as an alias of TooLarge for documentation purposes.
This also lets us get rid of another lingering 3DS-related error code. 
						
						
					 
					
						2018-08-25 09:40:29 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							81ca46dd17 
							
						 
					 
					
						
						
							
							kernel/error: Add error code for the handle table being full  
						
						... 
						
						
						
						This replaces the lingering 3DS constant with the proper one, and
utilizes it within HandleTable's Create() member function. 
						
						
					 
					
						2018-08-25 09:40:21 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							b8be5524bc 
							
						 
					 
					
						
						
							
							kernel/error: Add error code for invalid memory permissions  
						
						
						
						
					 
					
						2018-08-25 09:40:12 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2fd45093f2 
							
						 
					 
					
						
						
							
							kernel/error: Correct kernel error code for invalid combination  
						
						
						
						
					 
					
						2018-08-25 09:40:00 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e81354ae38 
							
						 
					 
					
						
						
							
							svc: Return process title ID if queried in GetInfo()  
						
						... 
						
						
						
						We already have the variable itself set up to perform this task, so we
can just return its value from the currently executing process instead
of always stubbing it to zero. 
						
						
					 
					
						2018-08-25 05:02:28 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							43e0d865fa 
							
						 
					 
					
						
						
							
							core: Namespace all code in the arm subdirectory under the Core namespace  
						
						... 
						
						
						
						Gets all of these types and interfaces out of the global namespace. 
						
						
					 
					
						2018-08-24 21:50:39 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1dd27aff47 
							
						 
					 
					
						
						
							
							Merge pull request  #1051  from B3n30/UnscheduleEventThreadsafe  
						
						... 
						
						
						
						Core::CoreTiming: add UnscheduleEventThreadsafe 
						
						
					 
					
						2018-08-15 18:25:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							aac5792a2b 
							
						 
					 
					
						
						
							
							kernel/server_session: Add IsSession() member function  
						
						... 
						
						
						
						Allows querying the inverse of IsDomain() to make things more readable.
This will likely also be usable in the event of implementing
ConvertDomainToSession(). 
						
						
					 
					
						2018-08-15 06:50:50 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							25d71454d1 
							
						 
					 
					
						
						
							
							kernel/svc: Log svcBreak parameters  
						
						... 
						
						
						
						Given if we hit here all is lost, we should probably be logging the
break reason code and associated information to distinguish between the
causes. 
						
						
					 
					
						2018-08-14 20:54:05 -04:00 
						 
				 
			
				
					
						
							
							
								B3n30 
							
						 
					 
					
						
						
						
						
							
						
						
							eab35c8235 
							
						 
					 
					
						
						
							
							Core::CoreTiming: add UnscheduleEventThreadsafe  
						
						
						
						
					 
					
						2018-08-13 13:56:41 +02:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							3476f5b4d3 
							
						 
					 
					
						
						
							
							kernel/object: Tighten object against data races  
						
						... 
						
						
						
						Despite being covered by a global mutex, we should still ensure that the
class handles its reference counts properly. This avoids potential
shenanigans when it comes to data races.
Given this is the root object that drives quite a bit of the kernel
object hierarchy, ensuring we always have the correct behavior (and no
races) is a good thing. 
						
						
					 
					
						2018-08-13 00:16:40 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							fecffeb0dd 
							
						 
					 
					
						
						
							
							Merge pull request  #1043  from Subv/timing  
						
						... 
						
						
						
						Use an approximated amortized amount of ticks when advancing timing. 
						
						
					 
					
						2018-08-12 22:31:55 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							9608f51cde 
							
						 
					 
					
						
						
							
							Merge pull request  #1036  from lioncash/thread  
						
						... 
						
						
						
						scheduler: Make HaveReadyThreads() a const member function 
						
						
					 
					
						2018-08-12 22:13:14 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e4ed5bc836 
							
						 
					 
					
						
						
							
							Merge pull request  #1042  from Subv/races  
						
						... 
						
						
						
						Fixed a bunch of race conditions when running in multicore mode. 
						
						
					 
					
						2018-08-12 22:05:48 -04:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
						
						
							
						
						
							a9877c8f65 
							
						 
					 
					
						
						
							
							Kernel/SVC: Don't reschedule the current core when creating a new thread.  
						
						... 
						
						
						
						The current core may have nothing to do with the core where the new thread was scheduled to run. In case it's the same core, then the following PrepareReshedule call will take care of that. 
						
						
					 
					
						2018-08-12 20:38:37 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
						
						
							
						
						
							84b542c386 
							
						 
					 
					
						
						
							
							Kernel/Threads: Lock the HLE mutex when executing the wakeup callback.  
						
						... 
						
						
						
						Another thread might be in the middle of a reschedule, thus altering the state of the schedulers. 
						
						
					 
					
						2018-08-12 18:41:11 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
						
						
							
						
						
							0135b328ed 
							
						 
					 
					
						
						
							
							Kernel/Thread: Always use the threadsafe option when scheduling wakeups.  
						
						... 
						
						
						
						WakeAfterDelay might be called from any host thread, so err on the side of caution and use the thread-safe CoreTiming::ScheduleEventThreadsafe.
Note that CoreTiming is still far from thread-safe, there may be more things we have to work on for it to be up to par with what we want. 
						
						
					 
					
						2018-08-12 18:40:56 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
						
						
							
						
						
							5224cc49c4 
							
						 
					 
					
						
						
							
							Kernel/Mutex: Don't duplicate threads in the mutex waiter list.  
						
						... 
						
						
						
						Exit from AddMutexWaiter early if the thread is already waiting for a mutex owned by the owner thread.
This accounts for the possibility of a thread that is waiting on a condition variable being awakened twice in a row.
Also added more validation asserts.
This should fix one of the random crashes in Breath Of The Wild. 
						
						
					 
					
						2018-08-12 16:35:27 -05:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e850ff63bc 
							
						 
					 
					
						
						
							
							scheduler: Make HaveReadyThreads() a const member function  
						
						... 
						
						
						
						This function doesn't modify instance state, so the const qualifier can
be added to it. 
						
						
					 
					
						2018-08-12 12:55:58 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
						
						
							
						
						
							ca4bf671ce 
							
						 
					 
					
						
						
							
							server_session: Provide more useful information and don't crash on bad IPC request.  
						
						
						
						
					 
					
						2018-08-11 21:15:24 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							ff5024ee2a 
							
						 
					 
					
						
						
							
							hle_ipc: Make WriteToOutgoingCommandBuffer()'s reference parameter const  
						
						... 
						
						
						
						This function doesn't modify anything within the reference Thread
instance. 
						
						
					 
					
						2018-08-09 02:51:38 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							da2f00ab7d 
							
						 
					 
					
						
						
							
							client_port: Make all data members private  
						
						... 
						
						
						
						These members don't need to be entirely exposed, we can instead expose
an API to operate on them without directly needing to mutate them
We can also guard against overflow/API misuse this way as well, given
active_sessions is an unsigned value. 
						
						
					 
					
						2018-08-06 23:05:17 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2feb1a8ba6 
							
						 
					 
					
						
						
							
							kernel/event: Make data members private  
						
						... 
						
						
						
						Instead we can simply provide accessors to the required data instead of
giving external read/write access to the variables directly. 
						
						
					 
					
						2018-08-06 12:53:02 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							7a77d0a71e 
							
						 
					 
					
						
						
							
							address_arbiter: Return by value from GetThreadsWaitingOnAddress()  
						
						... 
						
						
						
						In all cases the vector being supplied is empty, so we can just return
by value in these instances. 
						
						
					 
					
						2018-08-05 16:29:17 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							206f2e3436 
							
						 
					 
					
						
						
							
							Merge pull request  #914  from lioncash/codeset  
						
						... 
						
						
						
						kernel/process: Use accessors instead of class members for referencing segment array 
						
						
					 
					
						2018-08-04 02:17:25 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e93fa7f2cc 
							
						 
					 
					
						
						
							
							kernel/thread: Fix potential crashes introduced in 26de4bb521b1ace7af76eff4f6956cb23ac0d58c  
						
						... 
						
						
						
						This amends cases where crashes can occur that were missed due to the
odd way the previous code was set up (using 3DS memory regions that
don't exist). 
						
						
					 
					
						2018-08-03 23:49:10 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e649db8c6b 
							
						 
					 
					
						
						
							
							kernel/process: Use std::array where applicable  
						
						
						
						
					 
					
						2018-08-03 14:46:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							2beda7c2b3 
							
						 
					 
					
						
						
							
							kernel/process: Use accessors instead of class members for referencing segment array  
						
						... 
						
						
						
						Using member variables for referencing the segments array increases the
size of the class in memory for little benefit. The same behavior can be
achieved through the use of accessors that just return the relevant
segment. 
						
						
					 
					
						2018-08-03 14:45:45 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							26de4bb521 
							
						 
					 
					
						
						
							
							core/memory: Get rid of 3DS leftovers  
						
						... 
						
						
						
						Removes leftover code from citra that isn't needed. 
						
						
					 
					
						2018-08-03 11:22:47 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4c3c608d59 
							
						 
					 
					
						
						
							
							Merge pull request  #894  from lioncash/object  
						
						... 
						
						
						
						kernel: Move object class to its own source files 
						
						
					 
					
						2018-08-03 00:28:43 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4b84d5bcec 
							
						 
					 
					
						
						
							
							Merge pull request  #904  from lioncash/static  
						
						... 
						
						
						
						kernel/thread: Minor changes 
						
						
					 
					
						2018-08-03 00:19:29 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							d94a173877 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Convert loop into std::any_of()  
						
						
						
						
					 
					
						2018-08-02 12:46:15 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							c4e0c3d76c 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Use const where applicable  
						
						... 
						
						
						
						Makes our immutable state explicit. 
						
						
					 
					
						2018-08-02 12:21:46 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							ce5ad45278 
							
						 
					 
					
						
						
							
							kernel/vm_manager: Use the VAddr type alias in CarveVMA()  
						
						... 
						
						
						
						These two variables correspond to address ranges. 
						
						
					 
					
						2018-08-02 12:15:50 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							6058c84b79 
							
						 
					 
					
						
						
							
							kernel/thread: Make GetFreeThreadLocalSlot()'s loop indices size_t  
						
						... 
						
						
						
						Avoids using a u32 to compare against a range of size_t, which can be a
source of warnings. While we're at it, compress a std::tie into a
structured binding. 
						
						
					 
					
						2018-08-02 12:01:25 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							fac0e42b2f 
							
						 
					 
					
						
						
							
							kernel/thread: Make GetFreeThreadLocalSlot() reference parameter a const reference  
						
						... 
						
						
						
						This function only reads the data being referenced, it doesn't modify
it, so we can turn the reference into a const reference. 
						
						
					 
					
						2018-08-02 11:56:11 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							9a50a4f2cc 
							
						 
					 
					
						
						
							
							kernel/thread: Make GetFreeThreadLocalSlot() internally linked  
						
						... 
						
						
						
						This function isn't used outside of this translation unit, so we can
make it internally linked. 
						
						
					 
					
						2018-08-02 11:54:23 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							bf45092c61 
							
						 
					 
					
						
						
							
							kernel: Move object class to its own source files  
						
						... 
						
						
						
						General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code. 
						
						
					 
					
						2018-08-01 23:34:42 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							49e198b20d 
							
						 
					 
					
						
						
							
							kernel/thread: Remove unimplemented function prototype  
						
						... 
						
						
						
						Given there's no implementation, we may as well remove the code
entirely. 
						
						
					 
					
						2018-07-31 23:21:38 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ff2c1b0a94 
							
						 
					 
					
						
						
							
							Merge pull request  #877  from lioncash/remove  
						
						... 
						
						
						
						kernel: Remove unused object_address_table.cpp/.h 
						
						
					 
					
						2018-07-31 20:11:39 -07:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							369f6e58aa 
							
						 
					 
					
						
						
							
							kernel: Remove unused object_address_table.cpp/.h  
						
						... 
						
						
						
						These source files were entirely unused throughout the rest of the
codebase. This also has the benefit of getting rid of a global variable
as well. 
						
						
					 
					
						2018-07-31 11:03:08 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							a2304fad16 
							
						 
					 
					
						
						
							
							kernel: Remove unnecessary includes  
						
						... 
						
						
						
						Removes unnecessary direct dependencies in some headers and also gets
rid of indirect dependencies that were being relied on to be included. 
						
						
					 
					
						2018-07-31 10:15:17 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							0cd843151f 
							
						 
					 
					
						
						
							
							kernel/timer: Make data members private where applicable  
						
						... 
						
						
						
						Instead, we can just expose functions that return the queryable state
instead of letting anything modify it. 
						
						
					 
					
						2018-07-26 09:51:44 -04:00 
						 
				 
			
				
					
						
							
							
								Mat M 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d3fd0351a7 
							
						 
					 
					
						
						
							
							Merge pull request  #804  from lioncash/log  
						
						... 
						
						
						
						svc: Log parameters in SetMemoryAttribute() 
						
						
					 
					
						2018-07-25 14:43:24 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							657bd113e3 
							
						 
					 
					
						
						
							
							Merge pull request  #803  from MerryMage/core_timing_util  
						
						... 
						
						
						
						core_timing: Split off utility functions into core_timing_util 
						
						
					 
					
						2018-07-25 11:09:31 -07:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							c73410bf2c 
							
						 
					 
					
						
						
							
							svc: Resolve sign comparison warnings in WaitSynchronization()  
						
						... 
						
						
						
						The loop's induction variable was signed, but we were comparing against
an unsigned variable. 
						
						
					 
					
						2018-07-24 09:55:17 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							8e8e906432 
							
						 
					 
					
						
						
							
							svc: Log parameters in SetMemoryAttribute()  
						
						... 
						
						
						
						Provides slightly more context than only logging out the address value. 
						
						
					 
					
						2018-07-24 09:46:46 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d092ea0870 
							
						 
					 
					
						
						
							
							Merge pull request  #794  from lioncash/ref  
						
						... 
						
						
						
						mutex: Pass SharedPtr to GetHighestPriorityMutexWaitingThread() by reference 
						
						
					 
					
						2018-07-24 04:45:34 -07:00 
						 
				 
			
				
					
						
							
							
								MerryMage 
							
						 
					 
					
						
						
						
						
							
						
						
							44646e2ea0 
							
						 
					 
					
						
						
							
							core_timing: Split off utility functions into core_timing_util  
						
						
						
						
					 
					
						2018-07-24 11:03:24 +01:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							42b5158c96 
							
						 
					 
					
						
						
							
							mutex: Pass SharedPtr to GetHighestPriorityMutexWaitingThread() by reference  
						
						... 
						
						
						
						The pointed to thread's members are simply observed in this case, so we
don't need to copy it here. 
						
						
					 
					
						2018-07-23 22:54:35 -04:00