Michael Scire 
							
						 
					 
					
						
						
							
						
						8f8fe62a19 
					 
					
						
						
							
							Kernel/Arbiters: Initialize arb_wait_address in thread struct.  
						
						
						
						
					 
					
						2018-06-21 05:13:06 -06:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
							
						
						62bd1299ea 
					 
					
						
						
							
							Kernel/Arbiters: Clear WaitAddress in SignalToAddress  
						
						
						
						
					 
					
						2018-06-21 04:20:39 -06:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
							
						
						4f81bc4e1b 
					 
					
						
						
							
							Kernel/Arbiters: Mostly implement SignalToAddress  
						
						
						
						
					 
					
						2018-06-21 04:10:11 -06:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
							
						
						9d71ce88ce 
					 
					
						
						
							
							Kernel/Arbiters: Implement WaitForAddress  
						
						
						
						
					 
					
						2018-06-21 01:40:29 -06:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
							
						
						7e191dccc1 
					 
					
						
						
							
							Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs.  
						
						
						
						
					 
					
						2018-06-21 00:49:43 -06:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						a3d82ef5d9 
					 
					
						
						
							
							Build: Fixed some MSVC warnings in various parts of the code.  
						
						
						
						
					 
					
						2018-06-20 11:39:10 -05:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						4ac4b308e4 
					 
					
						
						
							
							Merge pull request  #572  from Armada651/user-except-stub  
						
						... 
						
						
						
						svc: Add a stub for UserExceptionContextAddr. 
						
						
					 
					
						2018-06-18 11:37:13 -04:00 
						 
				 
			
				
					
						
							
							
								Jules Blok 
							
						 
					 
					
						
						
							
						
						bf4e2b2f0b 
					 
					
						
						
							
							svc: Add a stub for UserExceptionContextAddr.  
						
						
						
						
					 
					
						2018-06-18 09:29:11 +02:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						9cd87a6352 
					 
					
						
						
							
							Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.  
						
						... 
						
						
						
						This situation may happen like so:
Thread 1 with low priority calls WaitProcessWideKey with timeout.
Thread 2 with high priority calls WaitProcessWideKey without timeout.
Thread 3 calls SignalProcessWideKey
- Thread 2 acquires the lock and awakens.
- Thread 1 can't acquire the lock and is put to sleep with the lock owner being Thread 2.
Thread 1's timeout expires, with the lock owner still being set to Thread 2. 
						
						
					 
					
						2018-06-02 14:06:35 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						c02d7c8ce7 
					 
					
						
						
							
							Kernel/Thread: Corrected a typo that caused the affinity mask to never be changed.  
						
						
						
						
					 
					
						2018-05-30 21:36:29 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						3957b0c34e 
					 
					
						
						
							
							Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask.  
						
						... 
						
						
						
						Also added some proper error handling. 
						
						
					 
					
						2018-05-30 21:36:29 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						d1f9c750a6 
					 
					
						
						
							
							Kernel/Thread: Corrected a typo in an assert about the processor id.  
						
						
						
						
					 
					
						2018-05-30 11:32:46 -05:00 
						 
				 
			
				
					
						
							
							
								greggameplayer 
							
						 
					 
					
						
						
							
						
						b16e5c6a81 
					 
					
						
						
							
							Add & correct miscellaneous things ( #470 )  
						
						... 
						
						
						
						* add some InfoType
* correct OpenApplicationProxy cmd number
* add IDisplayController functions
* fix clang-format
* add more system languages 
						
						
					 
					
						2018-05-25 22:31:54 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						3825b703fa 
					 
					
						
						
							
							Merge pull request  #454  from Subv/signal_processwide  
						
						... 
						
						
						
						Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey 
						
						
					 
					
						2018-05-23 10:28:23 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						693f78e6c2 
					 
					
						
						
							
							Merge pull request  #457  from Subv/mutex_waiters  
						
						... 
						
						
						
						Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release. 
						
						
					 
					
						2018-05-20 23:44:44 -04:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						fd500d3da6 
					 
					
						
						
							
							Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release.  
						
						... 
						
						
						
						A thread may own multiple mutexes at the same time, and only release one of them while other threads are waiting for the other mutexes. 
						
						
					 
					
						2018-05-20 14:41:58 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						2a35a36251 
					 
					
						
						
							
							Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey.  
						
						
						
						
					 
					
						2018-05-19 16:58:30 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						c74f2555b6 
					 
					
						
						
							
							Kernel/Threads: Reschedule the proper core when operating on that core's threads.  
						
						
						
						
					 
					
						2018-05-19 16:57:44 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						fab3dd98fe 
					 
					
						
						
							
							SVC: Removed unused WaitSynchronization1 function  
						
						
						
						
					 
					
						2018-05-19 16:56:33 -05:00 
						 
				 
			
				
					
						
							
							
								David Marcec 
							
						 
					 
					
						
						
							
						
						fd86cdb2e2 
					 
					
						
						
							
							Added RequestWithContext & ControlWithContext  
						
						
						
						
					 
					
						2018-05-17 14:03:52 -07:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						46ec9a9bc9 
					 
					
						
						
							
							thread: Rename mask to affinity_masks.  
						
						
						
						
					 
					
						2018-05-10 19:34:53 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						fbd7afefaa 
					 
					
						
						
							
							thread: Support core change on ResumeFromWait and improve ChangeCore.  
						
						
						
						
					 
					
						2018-05-10 19:34:53 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						91af2f94e8 
					 
					
						
						
							
							scheduler: Protect scheduling functions with a global mutex.  
						
						
						
						
					 
					
						2018-05-10 19:34:52 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						4822765fef 
					 
					
						
						
							
							thread: Initialize ideal_core and mask members.  
						
						
						
						
					 
					
						2018-05-10 19:34:52 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						8aa5d25f82 
					 
					
						
						
							
							threading: Reschedule only on cores that are necessary.  
						
						
						
						
					 
					
						2018-05-10 19:34:52 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						d6e3cd9a17 
					 
					
						
						
							
							svc: Implement GetThreadCoreMask and SetThreadCoreMask.  
						
						
						
						
					 
					
						2018-05-10 19:34:51 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						6ea8b3ef60 
					 
					
						
						
							
							thread: Implement ChangeCore function.  
						
						
						
						
					 
					
						2018-05-10 19:34:50 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						1c36f2a798 
					 
					
						
						
							
							svc: SignalProcessWideKey should apply to all cores.  
						
						
						
						
					 
					
						2018-05-10 19:34:49 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						6a890023e9 
					 
					
						
						
							
							svc: Implement GetCurrentProcessorNumber.  
						
						
						
						
					 
					
						2018-05-10 19:34:49 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						a434fdcb10 
					 
					
						
						
							
							core: Implement multicore support.  
						
						
						
						
					 
					
						2018-05-10 19:34:46 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						1147db9dd1 
					 
					
						
						
							
							Merge pull request  #431  from lioncash/fmt  
						
						... 
						
						
						
						general: Make formatting of logged hex values more straightforward 
						
						
					 
					
						2018-05-02 15:24:41 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						7c9644646f 
					 
					
						
						
							
							general: Make formatting of logged hex values more straightforward  
						
						... 
						
						
						
						This makes the formatting expectations more obvious (e.g. any zero padding specified
is padding that's entirely dedicated to the value being printed, not any pretty-printing
that also gets tacked on). 
						
						
					 
					
						2018-05-02 09:49:36 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						fadab1d5f3 
					 
					
						
						
							
							ipc: Add support for PopIpcInterface() method.  
						
						... 
						
						
						
						- This can be used for domain objects as inputs to service functions. 
						
						
					 
					
						2018-05-01 21:57:44 -04:00 
						 
				 
			
				
					
						
							
							
								David 
							
						 
					 
					
						
						
							
						
						ff2f0d980a 
					 
					
						
						
							
							GetSharedFontInOrderOfPriority ( #381 )  
						
						... 
						
						
						
						* GetSharedFontInOrderOfPriority
* Update pl_u.cpp
* Ability to use ReadBuffer and WriteBuffer with different buffer indexes, fixed up GetSharedFontInOrderOfPriority
* switched to NGLOG
* Update pl_u.cpp
* Update pl_u.cpp
* language_code is actually language code and not index
* u32->u64
* final cleanups 
						
						
					 
					
						2018-05-01 16:28:36 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						0197e28cc9 
					 
					
						
						
							
							core_timing: Namespace all functions and constants in core_timing's header  
						
						... 
						
						
						
						All of these variables and functions are related to timings and should be within the namespace. 
						
						
					 
					
						2018-04-30 03:32:59 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						3abba08080 
					 
					
						
						
							
							string_util: Remove StringFromFormat() and related functions  
						
						... 
						
						
						
						Given we utilize fmt, we don't need to provide our own functions for formatting anymore 
						
						
					 
					
						2018-04-29 18:52:33 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						843dd62c81 
					 
					
						
						
							
							core: Replace usages of LOG_GENERIC with new fmt-capable equivalents  
						
						
						
						
					 
					
						2018-04-27 11:57:52 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						8475496630 
					 
					
						
						
							
							general: Convert assertion macros over to be fmt-compatible  
						
						
						
						
					 
					
						2018-04-27 10:04:02 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						1913cf4783 
					 
					
						
						
							
							kernel/shared_memory: Remove unnecessary semicolon at end of ConvertPermissions()  
						
						... 
						
						
						
						Functions don't need to be terminated by semicolons. 
						
						
					 
					
						2018-04-25 20:32:16 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						40dee76c57 
					 
					
						
						
							
							kernel: Migrate logging macros to fmt-compatible ones  
						
						
						
						
					 
					
						2018-04-25 20:32:09 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
						
						0214351f4f 
					 
					
						
						
							
							Merge pull request  #370  from Subv/sync_primitives  
						
						... 
						
						
						
						Kernel: Reworked the new kernel synchronization primitives. 
						
						
					 
					
						2018-04-23 16:33:00 -04:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						46572d027d 
					 
					
						
						
							
							Kernel: Implemented mutex priority inheritance.  
						
						... 
						
						
						
						Verified with a hwtest and implemented based on reverse engineering.
Thread A's priority will get bumped to the highest priority among all the threads that are waiting for a mutex that A holds.
Once A releases the mutex and ownership is transferred to B, A's priority will return to normal and B's priority will be bumped. 
						
						
					 
					
						2018-04-23 11:23:44 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						a70ed9c8ae 
					 
					
						
						
							
							Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs  
						
						
						
						
					 
					
						2018-04-20 21:04:35 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						013778aa21 
					 
					
						
						
							
							Qt: Update the WaitTree widget to show info about the current mutex of each thread.  
						
						
						
						
					 
					
						2018-04-20 21:04:34 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						be155f4d9d 
					 
					
						
						
							
							Kernel: Remove unused ConditionVariable class.  
						
						
						
						
					 
					
						2018-04-20 21:04:33 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						5fdfbfe25a 
					 
					
						
						
							
							Kernel: Remove old and unused Mutex code.  
						
						
						
						
					 
					
						2018-04-20 21:04:32 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						b18ccf9399 
					 
					
						
						
							
							Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey  
						
						... 
						
						
						
						They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock 
						
						
					 
					
						2018-04-20 21:04:27 -05:00 
						 
				 
			
				
					
						
							
							
								Subv 
							
						 
					 
					
						
						
							
						
						e81a2080eb 
					 
					
						
						
							
							Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.  
						
						... 
						
						
						
						Switch mutexes are no longer kernel objects, they are managed in userland and only use the kernel to handle the contention case.
Mutex addresses store a special flag value (0x40000000) to notify the guest code that there are still some threads waiting for the mutex to be released. This flag is updated when a thread calls ArbitrateUnlock.
TODO:
* Fix svcWaitProcessWideKey
* Fix svcSignalProcessWideKey
* Remove the Mutex class. 
						
						
					 
					
						2018-04-20 21:04:25 -05:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						bec05db746 
					 
					
						
						
							
							resource_limit: Make ResourceTypes an enum class  
						
						... 
						
						
						
						Prevents enum identifiers from leaking into the surrounding scope. 
						
						
					 
					
						2018-04-20 19:41:45 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
							
						
						d9e316e353 
					 
					
						
						
							
							common_funcs: Remove ARRAY_SIZE macro  
						
						... 
						
						
						
						C++17 has non-member size() which we can just call where necessary. 
						
						
					 
					
						2018-04-19 22:36:52 -04:00