aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2016-11-30Fixed the rebase mistakes.Subv
2016-11-30A bit of a redesign.Subv
Sessions and Ports are now detached from each other. HLE services are handled by means of a SessionRequestHandler class, Interface now inherits from this class. The File and Directory classes are no longer kernel objects, but SessionRequestHandlers instead, bound to a ServerSession when requested. File::OpenLinkFile now creates a new session pair and binds the File instance to it.
2016-11-30IPC/HLE: Associate the ClientSessions with their parent port's HLE interface ↵Subv
if it exists. Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
2016-11-30Kernel/HLE: Service::Interface no longer inherits from any Kernel object, ↵Subv
and is now its own standalone class. Interface is now used by aggregation in ClientPort, to forward service commands to their HLE implementation if needed.
2016-11-30fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block ↵Subv
of Inter Process Communication.
2016-11-30 Kernel/IPC: Use Ports and Sessions as the fundamental building block of ↵Subv
Inter Process Communication. All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions. Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed. HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
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