aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2017-10-19hle: Fix QueryMemory response for MemoryInfo.bunnei
2017-10-18hle_ipc: Only copy necessary fields for outgoing command buffer.bunnei
2017-10-18hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer.bunnei
2017-10-15hle: Implement ConvertSessionToDomain, various cleanups.bunnei
2017-10-14hle: Initial implementation of NX service framework and IPC.bunnei
2017-10-09Merge remote-tracking branch 'upstream/master' into nxbunnei
# Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h
2017-10-09loader: Various improvements for NSO/NRO loaders.bunnei
2017-10-03Merge pull request #2977 from Subv/shmem_createbunnei
SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it
2017-10-02Kernel/SharedMemory: Don't take over and unmap the source memory block when ↵Subv
creating a shared memory, just reference it. Also reference the right offset into the backing block for the requested address.
2017-10-01Merge pull request #2971 from Subv/per_process_memopsSebastian Valle
Memory: Add overloads for ReadBlock and WriteBlock that operate on a specific process.
2017-10-01Kernel/Thread: Added a helper function to get a thread's command buffer VAddr.Subv
2017-09-30nso: Refactor and allocate .bss section.bunnei
2017-09-30process: Support loading multiple codesets.bunnei
2017-09-30kernel: Various threading fixes to support 64-bit addressing.bunnei
2017-09-30core: Various changes to support 64-bit addressing.bunnei
2017-09-30Merge pull request #2967 from Subv/thread_wakeup_callbacksSebastian Valle
Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken
2017-09-30Fixed type conversion ambiguityHuw Pascoe
2017-09-28Kernel/Threads: When putting a thread to wait, specify a function to execute ↵Subv
when it is awoken. This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads. If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable.
2017-09-26Kernel/Thread: Allow specifying which process a thread belongs to when ↵Subv
creating it. Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded.
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage
Don't expose Memory::current_page_table as a global.
2017-09-15Merge pull request #2842 from Subv/switchable_page_tableB3n30
Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
2017-09-15Kernel/Threads: Don't clear the CPU instruction cache when performing a ↵Subv
context switch from an idle thread into a thread in the same process. We were unnecessarily clearing the cache when going from Process A -> Idle -> Process A, this caused extreme performance regressions.
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