aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2016-12-06Improved the algorithm for GetHighestPriorityReadyThread.Subv
2016-12-04Threading: Added some utility functions and const correctness.Subv
2016-12-03Threading: Reworked the way our scheduler works.Subv
Threads will now be awakened when the objects they're waiting on are signaled, instead of repeating the WaitSynchronization call every now and then. The scheduler is now called once after every SVC call, and once after a thread is awakened from sleep by its timeout callback. This new implementation is based off reverse-engineering of the real kernel. See https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4 for a more detailed description of how the real kernel handles rescheduling.
2016-11-27Merge pull request #2196 from Subv/system_modeYuri Kunde Schlesner
Kernel/Loader: Grab the system mode from the NCCH ExHeader.
2016-11-19Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv
3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849
2016-11-19Kernel/Events: Log an error when trying to create Pulse events and timers.Subv
Related to #1904
2016-10-20Fix typosRicardo de Almeida Gonzaga
2016-09-22move ResetType to kernel.hwwylele
2016-09-22implement wait tree widgetwwylele
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2016-09-15arm: ResetContext shouldn't be part of ARM_Interface.bunnei
2016-08-02fix #1942 and adds a few IPC functions for descriptorsLectem
2016-06-28Merge pull request #1869 from wwylele/dont-be-lazyYuri Kunde Schlesner
Switch context to the same thread if necessary
2016-06-28Merge pull request #1867 from mailwl/srv-updatebunnei
srv: Update according 3dbrew
2016-06-18Merge pull request #1877 from wwylele/wait-fix-timeoutbunnei
Thread: update timeout when reruning WaitSynch
2016-06-11Kernel/SVC: Implemented svcCreatePort.Subv
2016-06-05Kernel: Added ClientPort and ServerPort classes.Subv
This is part of an ongoing effort to implement support for multiple processes.
2016-06-04Thread: update timeout when rerunning WaitSynchwwylele
2016-05-31Fix parameter name in EnableNotificationmailwl
2016-05-30Switch context on the same thread if necessarywwylele
2016-05-29Merge pull request #1692 from Subv/rm_getpointer2bunnei
Memory: Remove most usages of GetPointer
2016-05-26Memory: Added necessary headers and removed unnecessary headerMerryMage
2016-05-21Kernel/Thread: Remove use of Memory::GetPointerMerryMage
2016-05-17Merge pull request #1800 from JayFoxRox/set-fpscrbunnei
Set fpscr for new threads
2016-05-17Set fpscr for new threadsJannik Vogel
2016-05-14Memory: Fixed a regression caused by #1695 and #1689.Subv
Reserve enough space in the vector that holds the linear heap memory to prevent relocations of the backing memory when growing too much. Closes #1790
2016-05-13Merge pull request #1689 from Subv/shmembunnei
Kernel: Implemented shared memory.
2016-05-12Merge pull request #1695 from Subv/tls_allocbunnei
Kernel/Threads: Dynamically allocate the TLS region for threads.
2016-05-12HLE/Applets: Give each applet its own block of heap memory, and use that ↵Subv
when creating the framebuffer shared memory block.
2016-05-12Kernel: Account for automatically-allocated shared memories in the amount of ↵Subv
used linear heap memory.
2016-05-12Kernel/SharedMemory: Log an error when Map fails.Subv
2016-05-12Kernel: Implemented shared memory permissions.Subv
2016-05-12Kernel/Memory: Remove the Shared Memory region from the legacy memory map.Subv
2016-05-12Kernel/SharedMemory: Properly implemented shared memory support.Subv
Applications can request the kernel to allocate a piece of the linear heap for them when creating a shared memory object. Shared memory areas are now properly mapped into the target processes when calling svcMapMemoryBlock. Removed the APT Shared Font hack as it is no longer needed.
2016-05-12Kernel/SVC: Fixed the register order for svcCreateMemoryBlock.Subv
R0 is used as the last parameter instead of R4.
2016-05-08Merge pull request #1766 from Subv/log_cpubunnei
Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1)
2016-05-07Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).Subv
We do not currently implement any cores other than the AppCore (Core 0).
2016-05-07Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE ↵Subv
region of the linear heap. Each thread gets a 0x200-byte area from the 0x1000-sized page, when all 8 thread slots in a single page are used up, the kernel allocates a new page to hold another 8 entries. This is consistent with what the real kernel does.
2016-05-05Merge pull request #1762 from bunnei/globalbunnei
hle: Get rid of direct global access to g_reschedule
2016-04-05Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment
Common: Remove Common::make_unique, use std::make_unique
2016-04-05Common: Remove Common::make_unique, use std::make_uniqueMerryMage
2016-03-21session: Make helper functions constexprLioncash
2016-03-21hle: Get rid of global access to g_rescheduleLioncash
This shouldn't be directly exposed if there's already a partial API that operates on it. We can just provide the rest of that API.
2016-03-12svc: Move ResetType enum to the kernel event headerLioncash
2016-03-12svc: Make ResetType an enum classLioncash
2016-03-05Memory: Do correct Phys->Virt address translation for non-APP linheapYuri Kunde Schlesner
2016-02-21AudioCore: Skeleton ImplementationMerryMage
This commit: * Adds a new subproject, audio_core. * Defines structures that exist in DSP shared memory. * Hooks up various other parts of the emulator into audio core. This sets the foundation for a later HLE DSP implementation.