| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-01-10 | Merge pull request #2397 from Subv/pulse | bunnei | |
| Kernel: Implemented Pulse event and timers. | |||
| 2017-01-05 | Kernel: Implemented Pulse event and timers. | Subv | |
| Closes #1904 | |||
| 2017-01-04 | Kernel/Mutex: Update a mutex priority when a thread stops waiting on it. | Subv | |
| 2017-01-04 | Kernel/Mutex: Implemented priority inheritance. | Subv | |
| The implementation is based on reverse engineering of the 3DS's kernel. A mutex holder's priority will be temporarily boosted to the best priority among any threads that want to acquire any of its held mutexes. When the holder releases the mutex, it's priority will be boosted to the best priority among the threads that want to acquire any of its remaining held mutexes. | |||
| 2017-01-04 | Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter. | Subv | |
| This will be useful when implementing mutex priority inheritance. | |||
| 2016-12-21 | core: Remove HLE module, consolidate code & various cleanups. | bunnei | |
| 2016-12-16 | Merge pull request #2260 from Subv/scheduling | bunnei | |
| Threading: Reworked the way our scheduler works. | |||
| 2016-12-09 | WaitSynch: Removed unused variables and reduced SharedPtr copies. | Subv | |
| Define a variable with the value of the sync timeout error code. Use a boost::flat_map instead of an unordered_map to hold the equivalence of objects and wait indices in a WaitSynchN call. | |||
| 2016-12-05 | Kernel: Remove the Redirection handle type. | Subv | |
| 2016-12-03 | Threading: 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-30 | Fixed the rebase mistakes. | Subv | |
| 2016-11-30 | fixup! 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-19 | Kernel/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-09-22 | move ResetType to kernel.h | wwylele | |
| 2016-09-22 | implement wait tree widget | wwylele | |
| 2016-09-21 | Remove 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-18 | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | |
| 2016-09-18 | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | |
| 2016-06-11 | Kernel/SVC: Implemented svcCreatePort. | Subv | |
| 2016-06-05 | Kernel: Added ClientPort and ServerPort classes. | Subv | |
| This is part of an ongoing effort to implement support for multiple processes. | |||
| 2015-07-12 | Kernel: Add CodeSet case to Object::IsWaitable | Yuri Kunde Schlesner | |
| 2015-07-11 | Core: Properly configure address space when loading a binary | Yuri Kunde Schlesner | |
| The code now properly configures the process image to match the loaded binary segments (code, rodata, data) instead of just blindly allocating a large chunk of dummy memory. | |||
| 2015-06-28 | Common: Cleanup key_map includes. | Emmanuel Gil Peyrot | |
| 2015-06-16 | kernel: Fix svcWaitSynch to always acquire requested wait objects. | bunnei | |
| 2015-05-21 | Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback ↵ | Emmanuel Gil Peyrot | |
| code to prevent it from happening again. | |||
| 2015-05-14 | Core/ResourceLimits: Implemented the basic structure of ResourceLimits. | Subv | |
| Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues. Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create. | |||
| 2015-05-08 | Kernel: Remove g_program_id | Yuri Kunde Schlesner | |
| This has been obsoleted by the field in Process. | |||
| 2015-05-08 | Kernel: Introduce skeleton Process class to hold process data | Yuri Kunde Schlesner | |
| 2015-05-07 | Common: Remove common.h | Yuri Kunde Schlesner | |
| 2015-05-06 | Move typedefs from kernel.h to more appropriate places | Yuri Kunde Schlesner | |
| 2015-05-01 | Kernel: Properly initialize and shutdown all modules. | bunnei | |
| 2015-02-12 | Build: Fixed some warnings | Subv | |
| 2015-02-02 | Kernel: Make WaitObjects share ownership of Threads waiting on them | Yuri Kunde Schlesner | |
| During normal operation, a thread waiting on an WaitObject and the object hold mutual references to each other for the duration of the wait. If a process is forcefully terminated (The CTR kernel has a SVC to do this, TerminateProcess, though no equivalent exists for threads.) its threads would also be stopped and destroyed, leaving dangling pointers in the WaitObjects. The solution is to simply have the Thread remove itself from WaitObjects when it is stopped. The vector of Threads in WaitObject has also been changed to hold SharedPtrs, just in case. (Better to have a reference cycle than a crash.) | |||
| 2015-02-02 | Kernel: Remove Object::GetHandle (it's not used anymore :D) | Yuri Kunde Schlesner | |
| 2015-02-02 | Kernel: Introduce unique Object ids for debugging | Yuri Kunde Schlesner | |
| 2015-01-30 | Remove result.h InvalidHandle | Yuri Kunde Schlesner | |
| It was only being used in two places, where it was replaced by a local constant. | |||
| 2015-01-30 | Move VAddr/PAddr typedefs to kernel.h | Yuri Kunde Schlesner | |
| 2015-01-21 | Kernel: Renamed some functions for clarity. | bunnei | |
| - ReleaseNextThread->WakeupNextThread - ReleaseAllWaitingThreads->WakeupAllWaitingThreads. | |||
| 2015-01-21 | Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void. | bunnei | |
| 2015-01-21 | WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" ↵ | bunnei | |
| pure virtual. | |||
| 2015-01-21 | Session: Change to a WaitObject. | bunnei | |
| 2015-01-21 | Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a ↵ | bunnei | |
| WaitObject safely. | |||
| 2015-01-21 | Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks. | bunnei | |
| 2015-01-21 | WaitSynchronizationN: Refactor to fix several bugs | bunnei | |
| - Separate wait checking from waiting the current thread - Resume thread when wait_all=true only if all objects are available at once - Set output to correct wait object index when there are duplicate handles | |||
| 2015-01-21 | Kernel: Separate WaitSynchronization into Wait and Acquire methods. | bunnei | |
| 2015-01-21 | WaitSynchronizationN: Implement return values | bunnei | |
| 2015-01-21 | WaitObject: Added RemoveWaitingThread, fixed a bug, and cleanup. | bunnei | |
| 2015-01-21 | Kernel: Added WaitObject and changed "waitable" objects inherit from it. | bunnei | |
| 2015-01-09 | Kernel: Start using boost::intrusive_ptr for lifetime management | Yuri Kunde Schlesner | |
