aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2017-09-15Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the ↵Subv
current process' page table to obtain a pointer.
2017-09-10Kernel/Memory: Switch the current page table when a new process is scheduled.Subv
2017-09-10Kernel/Memory: Give each Process its own page table.Subv
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-08-23Merge pull request #2839 from Subv/global_kernel_lockJames Rowe
Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
2017-08-22Merge pull request #2893 from Subv/not_schedule_main_threadbunnei
Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
2017-08-22Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state ↵Subv
between the cpu thread and any other possible threads that might touch the kernel (network thread, etc). This mutex is acquired in SVC::CallSVC, ie, as soon as the guest application enters the HLE kernel, and should be acquired by the aforementioned threads before modifying kernel structures.
2017-08-21Kernel/Threads: Don't immediately switch to the new main thread when loading ↵Subv
a new process. This is necessary for loading multiple processes at the same time. The main thread will be automatically scheduled when necessary once the scheduler runs.
2017-08-21Warnings: Add UNREACHABLE macros to switches that contemplate all possible ↵Subv
values.
2017-07-22Merge pull request #2799 from yuriks/virtual-cached-range-flushWeiyi Wang
Add address conversion functions returning optional, Add function to flush virtual region from rasterizer cache
2017-06-29Merge pull request #2793 from Subv/replyandreceiveSebastian Valle
Kernel/SVC: Partially implemented svcReplyAndReceive
2017-06-29Kernel/SVC: Pass the current thread as a parameter to ↵Subv
ClientSession::SendSyncRequest.
2017-06-25Kernel/Sessions: Clean up the list of pending request threads of a session ↵Subv
when the client endpoint is closed.
2017-06-25Kernel/ServerSession: Keep track of which threads have issued sync requests.Subv
2017-06-23Kernel: Implement AcceptSession SVCYuri Kunde Schlesner
2017-06-21Memory: Make PhysicalToVirtualAddress return a boost::optionalYuri Kunde Schlesner
And fix a few places in the code to take advantage of that.
2017-06-21Kernel/IPC: Support translation of null handlesYuri Kunde Schlesner
Missed this in my first implementation. Thanks to @wwylele for pointing out that this was missing.
2017-06-21Merge pull request #2789 from yuriks/misc-kernelWeiyi Wang
Trivial no-op additions
2017-06-20Merge pull request #2790 from yuriks/remove-movefromYuri Kunde Schlesner
Remove ResultVal::MoveFrom
2017-06-18ResultVal: Remove MoveFrom()Yuri Kunde Schlesner
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in case you already have an rvalue.
2017-06-18Kernel: Add comment about the extended linear heap areaYuri Kunde Schlesner
2017-06-18Kernel/IPC: Make HLERequestContext usable from outside kernelYuri Kunde Schlesner
2017-06-11Kernel/IPC: Use boost::small_vector for HLE context objectsYuri Kunde Schlesner
2017-06-11Kernel: Allow clearing request_objects to re-use buffer spaceYuri Kunde Schlesner
Reduces the necessary allocation to max(in_handles, out_handles) rather than (in_handles + out_handles).
2017-06-11Kernel: Basic support for IPC translation for HLE servicesYuri Kunde Schlesner
2017-06-11Kernel: Add methods in HLERequestContext abstracting handle creationYuri Kunde Schlesner
2017-06-11ServiceFramework: Use separate copy of command bufferYuri Kunde Schlesner
Copy the IPC command buffer to/from the request context before/after the handler is invoked. This is part of a move away from using global data for handling IPC requests.
2017-06-08Merge pull request #2756 from yuriks/service-frameworkYuri Kunde Schlesner
New service framework
2017-06-08Session: Remove/add some forward declarationsYuri Kunde Schlesner
2017-06-08Kernel: Ensure objects are kept alive during ClientSession disconnectionYuri Kunde Schlesner
Fixes #2760
2017-06-08Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner
The old "Interface" class had a few problems such as using free functions (Which didn't allow you to write the service handler as if it were a regular class.) which weren't very extensible. (Only received one parameter with a pointer to the Interface object.) The new ServiceFramework aims to solve these problems by working with member functions and passing a generic context struct as parameter. This struct can be extended in the future without having to update all existing service implementations.
2017-06-06Kernel: Remove some unnecessary namespace qualificationsYuri Kunde Schlesner
2017-06-06Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSessionYuri Kunde Schlesner
This allows attaching a HLE handle to a ServerPort at any point after it is created, allowing port/session creation to be generic between HLE and regular services.
2017-06-05HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner
Most of the code that works with this is or will be in the kernel, so it's a more appropriate place for it to be.
2017-05-29Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner
2017-05-29Kernel: Move WaitObject to a separate fileYuri Kunde Schlesner
Now that HandleTable doesn't directly depend on WaitObject anymore, this can be separated from the main kernel.h header.
2017-05-29Kernel: Removed HandleTable::GetWaitObjectYuri Kunde Schlesner
This isn't necessary anymore since plain Get works correctly for WaitObjects.
2017-05-29Kernel: Extract dynamic Object pointer cast into its own functionYuri Kunde Schlesner
2017-05-24Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner
2017-05-21Merge pull request #2406 from Subv/session_disconnectYuri Kunde Schlesner
Kernel: Properly update port counters on session disconnection.
2017-05-21Kernel/Sessions: Remove the ClientSession::Create function.Subv
It is not meant to be used by anything other than CreateSessionPair.
2017-05-15Kernel: Remove a now unused enum and variable regarding a session's status.Subv
2017-05-15Kernel: Use a Session object to keep track of the status of a Client/Server ↵Subv
session pair. Reduce the associated port's connection count when a ServerSession is destroyed.
2017-05-09Kernel: Map special regions according to ExHeaderYuri Kunde Schlesner
This replaces the hardcoded VRAM/DSP mappings with ones made based on the ExHeader ARM11 Kernel caps list. While this has no visible effect for most applications (since they use a standard set of mappings) it does improve support for system modules and n3DS exclusives.
2017-05-09DSP: Create backing memory for entire DSP RAMYuri Kunde Schlesner
Also move address space mapping out of video_core.
2017-02-27Timer: restore missing signaled=true from #2421wwylele
2017-02-27Fix log entry in timer::signal (#2600)B3n30
2017-02-26Doxygen: Amend minor issues (#2593)Mat M
Corrects a few issues with regards to Doxygen documentation, for example: - Incorrect parameter referencing. - Missing @param tags. - Typos in @param tags. and a few minor other issues.
2017-02-26Merge pull request #2587 from yuriks/status-barYuri Kunde Schlesner
Replace built-in Profiler with indicators in status bar
2017-02-26Core: Remove unnecessary include in thread.hYuri Kunde Schlesner
2017-02-21Timers: Immediately signal the timer if it was started with an initial value ↵Subv
of 0.