summaryrefslogtreecommitdiff
path: root/src/tests/core/arm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* memory: Remove MemoryHookGravatar MerryMage2021-01-012-238/+0
|
* arm_test_common: Updates for new VMM.Gravatar bunnei2020-04-171-6/+2
|
* core/memory: Migrate over memory mapping functions to the new Memory classGravatar Lioncash2019-11-261-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.
* kernel: Differentiate kernel and user processes when picking IDGravatar Zach Hilman2019-06-101-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.
* kernel: Handle page table switching within MakeCurrentProcess()Gravatar Lioncash2019-04-071-2/+1
| | | | | Centralizes the page table switching to one spot, rather than making calling code deal with it everywhere.
* core: Move PageTable struct into Common.Gravatar bunnei2019-03-162-5/+6
|
* kernel: Make the address arbiter instance per-processGravatar Lioncash2019-03-071-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.
* kernel/address_arbiter: Pass in system instance to constructorGravatar Lioncash2019-03-051-3/+3
| | | | | Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance.
* global: Use std::optional instead of boost::optional (#1578)Gravatar Frederic L2018-10-302-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
* kernel/thread: Use a regular pointer for the owner/current processGravatar Lioncash2018-10-101-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).
* kernel/process: Make data member variables privateGravatar Lioncash2018-09-301-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.
* memory: Dehardcode the use of a 36-bit address spaceGravatar Lioncash2018-09-241-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.
* Port #4182 from Citra: "Prefix all size_t with std::"Gravatar fearlessTobi2018-09-152-8/+9
|
* kernel: Eliminate kernel global stateGravatar Lioncash2018-08-282-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.
* arm_test_common: Get rid of truncation warningsGravatar Lioncash2018-07-201-2/+5
| | | | Explicitly cast the value to a u8 to show that this is intentional.
* arm_test_common: Make file static variable a member variable of the testing ↵Gravatar Lioncash2018-07-202-2/+5
| | | | | | environment Gets rid of file-static behavior.
* arm_test_common: Add missing header guardGravatar Lioncash2018-07-201-0/+2
|
* core: Move process creation out of global state.Gravatar bunnei2018-03-141-2/+2
|
* Kernel: Store the program id in the Process class instead of the CodeSet class.Gravatar Subv2018-03-011-1/+1
| | | | There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
* memory: Replace all memory hooking with Special regionsGravatar MerryMage2018-01-272-25/+29
|
* arm: Remove SkyEye/Dyncom code that is ARMv6-only.Gravatar bunnei2018-01-022-13506/+0
|
* Merge remote-tracking branch 'upstream/master' into nxGravatar bunnei2017-10-091-1/+1
| | | | | | | | | | | | | | | | | # 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
* Moved down_count to CoreTimingGravatar Huw Pascoe2017-09-301-1/+1
|
* Tests: Fixed ARM VFP testsGravatar Subv2017-09-261-9/+13
|
* memory: Add GetCurrentPageTable/SetCurrentPageTableGravatar MerryMage2017-09-241-1/+1
| | | | Don't expose Memory::current_page_table as a global.
* Tests/VFP: Use a standalone pagetable for the TestEnvironment memory operations.Gravatar Subv2017-09-151-4/+14
| | | | This fixes building the tests
* tests: Add tests for vaddGravatar MerryMage2017-07-234-2/+13509
|
* tests: Arm testing frameworkGravatar MerryMage2017-07-232-0/+206