aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2018-06-02Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may ↵Subv
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-05-30Kernel/Thread: Corrected a typo that caused the affinity mask to never be ↵Subv
changed.
2018-05-30Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask.Subv
Also added some proper error handling.
2018-05-30Kernel/Thread: Corrected a typo in an assert about the processor id.Subv
2018-05-25Add & correct miscellaneous things (#470)greggameplayer
* add some InfoType * correct OpenApplicationProxy cmd number * add IDisplayController functions * fix clang-format * add more system languages
2018-05-23Merge pull request #454 from Subv/signal_processwidebunnei
Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey
2018-05-20Merge pull request #457 from Subv/mutex_waitersbunnei
Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release.
2018-05-20Mutex: Do not assert when the mutex waiting threads list isn't empty on ↵Subv
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-19Kernel/SVC: Signal the highest priority threads first in ↵Subv
svcSignalProcessWideKey.
2018-05-19Kernel/Threads: Reschedule the proper core when operating on that core's ↵Subv
threads.
2018-05-19SVC: Removed unused WaitSynchronization1 functionSubv
2018-05-17Added RequestWithContext & ControlWithContextDavid Marcec
2018-05-10thread: Rename mask to affinity_masks.bunnei
2018-05-10thread: Support core change on ResumeFromWait and improve ChangeCore.bunnei
2018-05-10scheduler: Protect scheduling functions with a global mutex.bunnei
2018-05-10thread: Initialize ideal_core and mask members.bunnei
2018-05-10threading: Reschedule only on cores that are necessary.bunnei
2018-05-10svc: Implement GetThreadCoreMask and SetThreadCoreMask.bunnei
2018-05-10thread: Implement ChangeCore function.bunnei
2018-05-10svc: SignalProcessWideKey should apply to all cores.bunnei
2018-05-10svc: Implement GetCurrentProcessorNumber.bunnei
2018-05-10core: Implement multicore support.bunnei
2018-05-02Merge pull request #431 from lioncash/fmtbunnei
general: Make formatting of logged hex values more straightforward
2018-05-02general: Make formatting of logged hex values more straightforwardLioncash
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-01ipc: Add support for PopIpcInterface() method.bunnei
- This can be used for domain objects as inputs to service functions.
2018-05-01GetSharedFontInOrderOfPriority (#381)David
* 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-04-30core_timing: Namespace all functions and constants in core_timing's headerLioncash
All of these variables and functions are related to timings and should be within the namespace.
2018-04-29string_util: Remove StringFromFormat() and related functionsLioncash
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-04-27core: Replace usages of LOG_GENERIC with new fmt-capable equivalentsLioncash
2018-04-27general: Convert assertion macros over to be fmt-compatibleLioncash
2018-04-25kernel/shared_memory: Remove unnecessary semicolon at end of ↵Lioncash
ConvertPermissions() Functions don't need to be terminated by semicolons.
2018-04-25kernel: Migrate logging macros to fmt-compatible onesLioncash
2018-04-23Merge pull request #370 from Subv/sync_primitivesbunnei
Kernel: Reworked the new kernel synchronization primitives.
2018-04-23Kernel: Implemented mutex priority inheritance.Subv
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-20Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOsSubv
2018-04-20Qt: Update the WaitTree widget to show info about the current mutex of each ↵Subv
thread.
2018-04-20Kernel: Remove unused ConditionVariable class.Subv
2018-04-20Kernel: Remove old and unused Mutex code.Subv
2018-04-20Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKeySubv
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
2018-04-20Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.Subv
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-20resource_limit: Make ResourceTypes an enum classLioncash
Prevents enum identifiers from leaking into the surrounding scope.
2018-04-19common_funcs: Remove ARRAY_SIZE macroLioncash
C++17 has non-member size() which we can just call where necessary.
2018-04-17Various service name fixes - part 2 (rebased) (#322)Hexagon12
* Updated ACC with more service names * Updated SVC with more service names * Updated set with more service names * Updated sockets with more service names * Updated SPL with more service names * Updated time with more service names * Updated vi with more service names
2018-04-14vm_manager: Increase GetTotalMemoryUsage value.bunnei
- Gets Binding of Isaac running.
2018-04-02svc: Stub out SetThreadActivity, GetThreadContext.bunnei
2018-04-02shared_memory: Remove incorrect 3ds-specific check.bunnei
2018-03-31hle_ipc, fsp_srv: Cleanup logging.bunnei
2018-03-31hle_ipc: Do not ensure write buffer size.bunnei
2018-03-31memory: Fix stack region.bunnei
2018-03-29svc: Stub GetThreadCoreMask.bunnei