Lioncash
0cbcd6ec9a
kernel: Eliminate kernel global state
...
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-28 22:31:51 -04:00
Lioncash
62b0b83fd8
externals: Update catch to 2.3.0
...
Updates the library from 2.2.3 to 2.3.0
2018-08-07 19:26:13 -04:00
Lioncash
26de4bb521
core/memory: Get rid of 3DS leftovers
...
Removes leftover code from citra that isn't needed.
2018-08-03 11:22:47 -04:00
Lioncash
48733744bb
arm_test_common: Get rid of truncation warnings
...
Explicitly cast the value to a u8 to show that this is intentional.
2018-07-20 17:53:53 -04:00
Lioncash
a8bb1eb39f
arm_test_common: Make file static variable a member variable of the testing environment
...
Gets rid of file-static behavior.
2018-07-20 17:52:37 -04:00
Lioncash
a44475207c
arm_test_common: Add missing header guard
2018-07-20 17:48:43 -04:00
Zach Hilman
29aff8d5ab
Virtual Filesystem 2: Electric Boogaloo ( #676 )
...
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
2018-07-18 18:07:11 -07:00
bunnei
7d6653268f
core: Move process creation out of global state.
2018-03-14 18:42:19 -04:00
Subv
827f8ca3c7
Kernel: Store the program id in the Process class instead of the CodeSet class.
...
There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
2018-03-01 19:03:53 -05:00
MerryMage
738f91a57d
memory: Replace all memory hooking with Special regions
2018-01-27 15:16:39 +00:00
James Rowe
096be16636
Format: Run the new clang format on everything
2018-01-20 16:45:11 -07:00
Lioncash
e710a1b989
CMakeLists: Derive the source directory grouping from targets themselves
...
Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
2018-01-17 21:51:43 -05:00
MerryMage
e86bdb1601
Fix build on macOS and linux
2018-01-13 22:38:52 +00:00
B3n30
82151d407d
CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119 )
...
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2018-01-08 19:10:25 -05:00
bunnei
b172f0d770
arm: Remove SkyEye/Dyncom code that is ARMv6-only.
2018-01-02 22:24:12 -05:00
bunnei
960a1416de
hle: Initial implementation of NX service framework and IPC.
2017-10-14 22:18:42 -04:00
bunnei
b1d5db1cf6
Merge remote-tracking branch 'upstream/master' into nx
...
# 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-09 23:56:20 -04:00
bunnei
8c92435ded
nso: Refactor and allocate .bss section.
2017-09-30 14:33:58 -04:00
Huw Pascoe
529f4a0131
Moved down_count to CoreTiming
2017-09-30 17:38:14 +01:00
Subv
a8d2f5787f
Tests: Added Memory::IsValidVirtualAddress tests.
2017-09-26 17:31:50 -05:00
Subv
c102e3ae28
Tests: Fixed ARM VFP tests
2017-09-26 17:29:06 -05:00
MerryMage
c02bbb7030
memory: Add GetCurrentPageTable/SetCurrentPageTable
...
Don't expose Memory::current_page_table as a global.
2017-09-24 22:42:42 +01:00
Subv
3bde97ea05
Tests/VFP: Use a standalone pagetable for the TestEnvironment memory operations.
...
This fixes building the tests
2017-09-15 14:26:20 -05:00
MerryMage
a08edd67eb
tests: Add tests for vadd
2017-07-23 12:29:51 +01:00
MerryMage
567c3a2ee7
tests: Arm testing framework
2017-07-23 12:08:43 +01:00
Yuri Kunde Schlesner
cdefefc539
Kernel: Fix typo in test name
2017-06-22 02:21:18 -07:00
Yuri Kunde Schlesner
f64d0b3f26
Kernel/IPC: Support translation of null handles
...
Missed this in my first implementation. Thanks to @wwylele for pointing
out that this was missing.
2017-06-21 14:27:03 -07:00
Yuri Kunde Schlesner
60a882cd50
Kernel/IPC: Add tests for HLERequestContext buffer translation
2017-06-18 16:05:58 -07:00
Yuri Kunde Schlesner
cebdae6c92
CMake: Create an INTERFACE target for Catch
2017-05-27 22:46:59 -07:00
Yuri Kunde Schlesner
7b81903756
CMake: Correct inter-module dependencies and library visibility
...
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-05-27 18:41:24 -07:00
wwylele
8a8c0f348b
Common: add ParamPackage
2017-03-01 23:30:57 +02:00
Jan Beich
774d3112af
tests: add missing libcore dependency after 75ee2f8c67
...
$ (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-12-07 18:30:49 +00:00
wwylele
282195b450
tests: add a work-around for macOS linking error
2016-11-19 18:55:35 +02:00
wwylele
75ee2f8c67
FileSys: add PathParser
2016-11-19 17:17:19 +02:00
MerryMage
87de1ca968
Tests: Run tests on CI
2016-05-19 19:28:08 +01:00
MerryMage
a03f9b6fb6
tests: Infrastructure for unit tests
2016-05-19 08:38:03 +01:00