bunnei
9edd67f475
kernel: shared_memory: Refactor for new VMM.
2020-04-17 00:59:32 -04:00
bunnei
6ef844fab3
kernel: errors: Add ERR_OUT_OF_RESOURCES.
2020-04-17 00:59:31 -04:00
bunnei
1717cdf811
kernel: process_capability: Update to use Memory::PageTable.
2020-04-17 00:59:31 -04:00
bunnei
6fe68ddea2
kernel: memory: Add PageTable class, to manage process address space.
2020-04-17 00:59:31 -04:00
bunnei
ea8bc8e759
kernel: memory: Add MemoryLayout class, to build physical memory layout.
2020-04-17 00:59:31 -04:00
bunnei
9b912d155a
kernel: memory: Add MemoryManager class, to manage page heaps.
2020-04-17 00:59:30 -04:00
bunnei
227e9ac5d7
kernel: memory: Add MemoryBlockManager class, to manage memory blocks.
2020-04-17 00:59:30 -04:00
bunnei
036f2f9176
kernel: memory: Add PageHeap class, to manage a heap of pages.
2020-04-17 00:59:30 -04:00
bunnei
b013b110bc
kernel: memory: Add PageLinkedList class, to manage a list of pages.
2020-04-17 00:59:30 -04:00
bunnei
b94f043b7b
kernel: memory: Add system_control code, which will be used for ASLR support.
2020-04-17 00:59:30 -04:00
bunnei
72d1cda09a
physical_memory: Add missing include for <vector>.
2020-04-17 00:59:30 -04:00
bunnei
91a38e3fa8
kernel: memory: Add MemoryBlock class, for managing memory blocks and their state.
2020-04-17 00:59:29 -04:00
bunnei
eadd36d143
kernel: memory: Add memory_types.h, for things that are commonly used in memory code.
2020-04-17 00:59:29 -04:00
bunnei
91b899ff00
kernel: memory: Add SlabHeap class, for managing memory heaps.
...
- This will be used for TLS pages, among other things.
2020-04-17 00:59:29 -04:00
bunnei
9fd238a0f8
kernel: memory: Add AddressSpaceInfo class, for managing the memory address space.
2020-04-17 00:59:29 -04:00
bunnei
5b9e69e7fe
core: memory: Move to Core::Memory namespace.
...
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17 00:59:28 -04:00
bunnei
a10f82b62d
core: kernel: Add svc_types header to include SVC-specific types.
2020-04-17 00:59:28 -04:00
bunnei
ed940661a8
core: kernel: Move SVC to its own namesapce.
2020-04-17 00:59:28 -04:00
bunnei
bdd81bdebf
kernel: resource_limit: Improvements to implementation.
2020-04-17 00:59:27 -04:00
bunnei
365f14cd2c
process: SetupMainThread: Zero out argument on process start.
2020-04-17 00:11:50 -04:00
bunnei
f0b4b5be4c
Merge pull request #3671 from lioncash/switch
...
kernel/thread: Resolve -Wswitch warnings
2020-04-16 23:30:32 -04:00
Lioncash
f8fe53c9f9
hle_ipc: Remove std::size_t casts where applicable
...
These were added in the change that enabled -Wextra on linux builds so
as not to introduce interface changes in the same change as a
build-system flag addition.
Now that the flags are enabled, we can freely change the interface to
make these unnecessary.
2020-04-16 22:02:10 -04:00
Lioncash
02e095313a
CMakeLists: Specify -Wextra on linux builds
...
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
2020-04-15 21:33:46 -04:00
Lioncash
6ea751d910
CMakeLists: Make -Wreorder a compile-time error
...
This can result in silent logic bugs within code, and given the amount
of times these kind of warnings are caused, they should be flagged at
compile-time so no new code is submitted with them.
2020-04-15 14:14:41 -04:00
Lioncash
0f32ae2140
kernel/thread: Resolve -Wswitch warnings
2020-04-15 13:48:14 -04:00
bunnei
36c4c33bb8
core: hle: Implement separate A32/A64 SVC interfaces.
2020-03-02 21:52:03 -05:00
bunnei
048ac77adc
core: Implement separate A32/A64 ARM interfaces.
2020-03-02 21:51:57 -05:00
Fernando Sahmkow
d0b12c793d
Scheduler: Inline global scheduler in Scheduler Lock.
2020-02-22 12:39:17 -04:00
Fernando Sahmkow
d6584d988f
Kernel: Correct pending feedback.
2020-02-22 11:51:03 -04:00
Fernando Sahmkow
78f01601d0
Kernel: Address Feedback.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
7c2b72bcef
Kernel: Implement Scheduler locks
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
fe53ac3e33
Kernel: Implement Time Manager.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
e6cc0a48e0
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
2020-02-22 11:18:06 -04:00
Fernando Sahmkow
f5da504663
Kernel: Make global scheduler depend on KernelCore
2020-02-22 11:18:06 -04:00
bunnei
2e46017b66
Merge pull request #3401 from FernandoS27/synchronization
...
Set of refactors for Kernel Synchronization and Hardware Constants
2020-02-14 14:40:20 -05:00
Fernando Sahmkow
0d2a459fae
Core: Address Feedback
2020-02-13 19:10:33 -04:00
Lioncash
5c0742bb94
address_arbiter: Collapse loops in InsertThread() and RemoveThread()
...
Same behavior, but without the need to explicitly loop through
everything manually.
2020-02-12 15:34:07 -05:00
Lioncash
3105b7864c
address_arbiter: Simplify GetThreadsWaitingOnAddress()
...
Simplifies the overall function and also allows for it to become a
const-qualified member function.
2020-02-12 15:10:16 -05:00
Lioncash
750c48af18
kernel/thread: Remove trivial usages of the global system accessor
...
We can just use the kernel member variable directly instead of going
through the system to obtain the same thing.
2020-02-12 01:00:41 -05:00
Fernando Sahmkow
6fc0790f3a
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
Fernando Sahmkow
1ee7a4d926
Kernel: Refactor synchronization to better match RE
2020-02-11 18:47:31 -04:00
Fernando Sahmkow
3a7f539463
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
2020-02-11 10:46:25 -04:00
bunnei
e4c167aff9
Merge pull request #3381 from bunnei/ipc-fix
...
hle: services: Fix prepo IPC, and add better error checking.
2020-02-07 16:25:42 -05:00
bunnei
9ffdef96d9
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
Zach Hilman
a0400ebc19
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
bunnei
bc76fe3100
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
Lioncash
371f3ecf5d
kernel/physical_core: Make use of std::unique_ptr
...
shared_ptr was used in 8eb175481c
due to a
misunderstanding of how the language generates move constructors and
move assignment operators.
If a destructor is user-provided, then the compiler won't generate the
move constructor and move assignment operators by default--they must be
explicitly opted into.
The reason for the compilation errors is due to the fact that the
language will fall back to attempting to use the copy constructor/copy
assignment operators if the respective move constructor or move
assignment operator is unavailable.
Given that we explicitly opt into them now, the the move constructor and
move assignment operators will be generated as expected.
2020-01-30 18:42:40 -05:00
Lioncash
379194237d
kernel/physical_core: Remove unused kernel reference member variable
...
This isn't used within the class, so it can be removed to simplify the
overall interface.
While we're in the same area, we can simplify a unique_ptr reset() call.
2020-01-30 18:29:57 -05:00
Fernando Sahmkow
8eb175481c
System: Address Feedback
2020-01-27 09:54:11 -04:00
Fernando Sahmkow
3230cfebb7
Kernel: Remove a few global instances from the kernel.
2020-01-26 14:23:46 -04:00