Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2020-07-16 | core_timing: Make TimedCallback take std::chrono::nanoseconds | Lioncash | 1 | -6/+8 | |
Enforces our desired time units directly with a concrete type. | |||||
2020-07-16 | core_timing: Make use of std::chrono with ScheduleEvent | Lioncash | 1 | -5/+8 | |
2020-06-28 | Core/Common: Address Feedback. | Fernando Sahmkow | 1 | -1/+1 | |
2020-06-27 | Tests/CoreTiming: Correct host timing tests. | Fernando Sahmkow | 2 | -157/+14 | |
2020-06-27 | CoreTiming: Correct rebase bugs and other miscellaneous things. | Fernando Sahmkow | 1 | -4/+6 | |
2020-06-27 | General: Cleanup legacy code. | Fernando Sahmkow | 1 | -0/+1 | |
2020-06-27 | General: Recover Prometheus project from harddrive failure | Fernando Sahmkow | 2 | -100/+85 | |
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system. | |||||
2020-06-18 | Tests/HostTiming: Correct GCC Compile error. | Fernando Sahmkow | 1 | -15/+14 | |
2020-06-18 | Common/Fiber: Implement Rewinding. | Fernando Sahmkow | 1 | -0/+46 | |
2020-06-18 | Common/Tests: Address Feedback | Fernando Sahmkow | 2 | -24/+24 | |
2020-06-18 | Common/Tests: Clang Format. | Fernando Sahmkow | 1 | -9/+14 | |
2020-06-18 | Common: Implement WallClock Interface and implement a native clock for x64 | Fernando Sahmkow | 1 | -26/+19 | |
2020-06-18 | Tests: Add base tests to host timing | Fernando Sahmkow | 2 | -0/+151 | |
2020-06-18 | Common: Polish Fiber class, add comments, asserts and more tests. | Fernando Sahmkow | 1 | -1/+94 | |
2020-06-18 | Tests: Add tests for fibers and refactor/fix Fiber class | Fernando Sahmkow | 2 | -0/+215 | |
2020-04-17 | arm_test_common: Updates for new VMM. | bunnei | 1 | -6/+2 | |
2020-04-17 | General: Resolve warnings related to missing declarations | Lioncash | 1 | -8/+10 | |
2019-11-27 | core/memory: Migrate over memory mapping functions to the new Memory class | Lioncash | 1 | -7/+8 | |
Migrates all of the direct mapping facilities over to the new memory class. In the process, this also obsoletes the need for memory_setup.h, so we can remove it entirely from the project. | |||||
2019-11-27 | core_timing: Use better reference tracking for EventType. (#3159) | bunnei | 1 | -66/+18 | |
* core_timing: Use better reference tracking for EventType. - Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects. - Removes need for unique names - we won't be using this for save states anyways. | |||||
2019-10-12 | Core_Timing: Fix tests. | Fernando Sahmkow | 1 | -2/+2 | |
2019-10-09 | Core Timing: General corrections and added tests. | Fernando Sahmkow | 1 | -3/+153 | |
2019-10-09 | Tests: Eliminate old Core Timing Tests | Fernando Sahmkow | 1 | -193/+0 | |
2019-06-16 | Core_Timing: Make core_timing threadsafe by default. | Fernando Sahmkow | 1 | -10/+10 | |
The old implementation had faulty Threadsafe methods where events could be missing. This implementation unifies unsafe/safe methods and makes core timing thread safe overall. | |||||
2019-06-10 | kernel: Differentiate kernel and user processes when picking ID | Zach Hilman | 1 | -1/+2 | |
This allows kernel internal type processes to be assigned IDs in the KIP range while userland processes are assigned in the user range. | |||||
2019-04-07 | kernel: Handle page table switching within MakeCurrentProcess() | Lioncash | 1 | -2/+1 | |
Centralizes the page table switching to one spot, rather than making calling code deal with it everywhere. | |||||
2019-03-27 | Fixes and corrections on formatting. | Fernando Sahmkow | 2 | -30/+11 | |
2019-03-27 | Add MultiLevelQueue Tests | Fernando Sahmkow | 2 | -0/+56 | |
2019-03-27 | Implement intrinsics CountTrailingZeroes and test it. | Fernando Sahmkow | 2 | -0/+43 | |
2019-03-17 | core: Move PageTable struct into Common. | bunnei | 2 | -5/+6 | |
2019-03-08 | kernel: Make the address arbiter instance per-process | Lioncash | 1 | -1/+1 | |
Now that we have the address arbiter extracted to its own class, we can fix an innaccuracy with the kernel. Said inaccuracy being that there isn't only one address arbiter. Each process instance contains its own AddressArbiter instance in the actual kernel. This fixes that and gets rid of another long-standing issue that could arise when attempting to create more than one process. | |||||
2019-03-05 | kernel/address_arbiter: Pass in system instance to constructor | Lioncash | 1 | -3/+3 | |
Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance. | |||||
2019-02-16 | core_timing: Convert core timing into a class | Lioncash | 1 | -103/+112 | |
Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces. | |||||
2019-02-12 | core_timing: Rename CoreTiming namespace to Core::Timing | Lioncash | 1 | -84/+85 | |
Places all of the timing-related functionality under the existing Core namespace to keep things consistent, rather than having the timing utilities sitting in its own completely separate namespace. | |||||
2019-02-06 | common/bitfield: make it endianness-aware | Weiyi Wang | 2 | -0/+91 | |
2018-10-30 | global: Use std::optional instead of boost::optional (#1578) | Frederic L | 2 | -10/+10 | |
* get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build | |||||
2018-10-10 | kernel/thread: Use a regular pointer for the owner/current process | Lioncash | 1 | -1/+2 | |
There's no real need to use a shared pointer in these cases, and only makes object management more fragile in terms of how easy it would be to introduce cycles. Instead, just do the simple thing of using a regular pointer. Much of this is just a hold-over from citra anyways. It also doesn't make sense from a behavioral point of view for a process' thread to prolong the lifetime of the process itself (the process is supposed to own the thread, not the other way around). | |||||
2018-09-30 | kernel/process: Make data member variables private | Lioncash | 1 | -1/+1 | |
Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code. | |||||
2018-09-25 | memory: Dehardcode the use of a 36-bit address space | Lioncash | 1 | -2/+5 | |
Given games can also request a 32-bit or 39-bit address space, we shouldn't be hardcoding the address space range as 36-bit. | |||||
2018-09-15 | Tests: Remove glad test OS X work-around | Yuri Kunde Schlesner | 2 | -16/+0 | |
2018-09-15 | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 3 | -18/+19 | |
2018-09-08 | common: Implement a ring buffer | MerryMage | 2 | -0/+131 | |
2018-08-29 | kernel: Eliminate kernel global state | Lioncash | 2 | -1/+3 | |
As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header. | |||||
2018-08-08 | externals: Update catch to 2.3.0 | Lioncash | 4 | -4/+4 | |
Updates the library from 2.2.3 to 2.3.0 | |||||
2018-08-03 | core/memory: Get rid of 3DS leftovers | Lioncash | 2 | -57/+0 | |
Removes leftover code from citra that isn't needed. | |||||
2018-07-20 | arm_test_common: Get rid of truncation warnings | Lioncash | 1 | -2/+5 | |
Explicitly cast the value to a u8 to show that this is intentional. | |||||
2018-07-20 | arm_test_common: Make file static variable a member variable of the testing environment | Lioncash | 2 | -2/+5 | |
Gets rid of file-static behavior. | |||||
2018-07-20 | arm_test_common: Add missing header guard | Lioncash | 1 | -0/+2 | |
2018-07-19 | Virtual Filesystem 2: Electric Boogaloo (#676) | Zach Hilman | 2 | -39/+0 | |
* Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression | |||||
2018-03-14 | core: Move process creation out of global state. | bunnei | 2 | -6/+6 | |
2018-03-02 | Kernel: Store the program id in the Process class instead of the CodeSet class. | Subv | 2 | -5/+5 | |
There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them. | |||||
2018-01-27 | memory: Replace all memory hooking with Special regions | MerryMage | 2 | -25/+29 | |
2018-01-21 | Format: Run the new clang format on everything | James Rowe | 1 | -1/+3 | |
2018-01-18 | CMakeLists: Derive the source directory grouping from targets themselves | Lioncash | 1 | -15/+11 | |
Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases. | |||||
2018-01-13 | Fix build on macOS and linux | MerryMage | 1 | -1/+1 | |
2018-01-09 | CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119) | B3n30 | 2 | -0/+238 | |
* CoreTiming: New CoreTiming; Add Test for CoreTiming | |||||
2018-01-03 | arm: Remove SkyEye/Dyncom code that is ARMv6-only. | bunnei | 3 | -13507/+0 | |
2017-10-15 | hle: Initial implementation of NX service framework and IPC. | bunnei | 2 | -217/+0 | |
2017-09-30 | nso: Refactor and allocate .bss section. | bunnei | 1 | -2/+2 | |
2017-09-30 | Moved down_count to CoreTiming | Huw Pascoe | 1 | -1/+1 | |
2017-09-27 | Tests: Added Memory::IsValidVirtualAddress tests. | Subv | 2 | -0/+57 | |
2017-09-27 | Tests: Fixed ARM VFP tests | Subv | 1 | -9/+13 | |
2017-09-24 | memory: Add GetCurrentPageTable/SetCurrentPageTable | MerryMage | 1 | -1/+1 | |
Don't expose Memory::current_page_table as a global. | |||||
2017-09-15 | Tests/VFP: Use a standalone pagetable for the TestEnvironment memory operations. | Subv | 1 | -4/+14 | |
This fixes building the tests | |||||
2017-07-23 | tests: Add tests for vadd | MerryMage | 5 | -2/+13510 | |
2017-07-23 | tests: Arm testing framework | MerryMage | 3 | -0/+208 | |
2017-06-22 | Kernel: Fix typo in test name | Yuri Kunde Schlesner | 1 | -1/+1 | |
2017-06-21 | Kernel/IPC: Support translation of null handles | Yuri Kunde Schlesner | 1 | -0/+23 | |
Missed this in my first implementation. Thanks to @wwylele for pointing out that this was missing. | |||||
2017-06-19 | Kernel/IPC: Add tests for HLERequestContext buffer translation | Yuri Kunde Schlesner | 2 | -2/+196 | |
2017-05-28 | CMake: Create an INTERFACE target for Catch | Yuri Kunde Schlesner | 1 | -4/+2 | |
2017-05-28 | CMake: Correct inter-module dependencies and library visibility | Yuri Kunde Schlesner | 1 | -2/+3 | |
Modules didn't correctly define their dependencies before, which relied on the frontends implicitly including every module for linking to succeed. Also changed every target_link_libraries call to specify visibility of dependencies to avoid leaking definitions to dependents when not necessary. | |||||
2017-03-01 | Common: add ParamPackage | wwylele | 2 | -0/+26 | |
2016-12-07 | tests: add missing libcore dependency after 75ee2f8c6702 | Jan Beich | 1 | -1/+1 | |
$ (cmake -DENABLE_SDL2:BOOL=false /path/to/citra; gmake) [...] [ 85%] Linking CXX executable tests ../common/libcommon.a(microprofile.cpp.o): In function `MicroProfileThreadStart(pthread**, void* (*)(void*))': src/common/microprofile.cpp:(.text+0x41): undefined reference to `pthread_create' c++: error: linker command failed with exit code 1 (use -v to see invocation) | |||||
2016-11-19 | tests: add a work-around for macOS linking error | wwylele | 2 | -0/+15 | |
2016-11-19 | FileSys: add PathParser | wwylele | 2 | -0/+39 | |
2016-05-19 | Tests: Run tests on CI | MerryMage | 1 | -0/+2 | |
2016-05-19 | tests: Infrastructure for unit tests | MerryMage | 2 | -0/+23 | |