11c02a50e9
core: system: Rename GetDeviceManager -> DeviceManager.
...
- More consistent with other system components.
2020-04-17 00:59:32 -04:00
3fcc4cab4f
kernel: transfer_memory: Refactor for new VMM.
2020-04-17 00:59:32 -04:00
d0162fc3d7
kernel: shared_memory: Refactor for new VMM.
2020-04-17 00:59:32 -04:00
a238d08f71
kernel: errors: Add ERR_OUT_OF_RESOURCES.
2020-04-17 00:59:31 -04:00
ffc3de762b
kernel: process_capability: Update to use Memory::PageTable.
2020-04-17 00:59:31 -04:00
84f1b6d530
kernel: memory: Add PageTable class, to manage process address space.
2020-04-17 00:59:31 -04:00
cfae8a1c1a
kernel: memory: Add MemoryLayout class, to build physical memory layout.
2020-04-17 00:59:31 -04:00
5d6e8a5b44
kernel: memory: Add MemoryManager class, to manage page heaps.
2020-04-17 00:59:30 -04:00
548ef190ab
kernel: memory: Add MemoryBlockManager class, to manage memory blocks.
2020-04-17 00:59:30 -04:00
3927012734
kernel: memory: Add PageHeap class, to manage a heap of pages.
2020-04-17 00:59:30 -04:00
dc720311cc
kernel: memory: Add PageLinkedList class, to manage a list of pages.
2020-04-17 00:59:30 -04:00
81cb4d3c7f
kernel: memory: Add system_control code, which will be used for ASLR support.
2020-04-17 00:59:30 -04:00
fc040b5b70
physical_memory: Add missing include for <vector>.
2020-04-17 00:59:30 -04:00
c2f4dcb1e3
kernel: memory: Add MemoryBlock class, for managing memory blocks and their state.
2020-04-17 00:59:29 -04:00
ea5ee9918e
kernel: memory: Add memory_types.h, for things that are commonly used in memory code.
2020-04-17 00:59:29 -04:00
d364e7cf09
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
14aa65ce00
kernel: memory: Add AddressSpaceInfo class, for managing the memory address space.
2020-04-17 00:59:29 -04:00
4caff51710
core: memory: Move to Core::Memory namespace.
...
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17 00:59:28 -04:00
ad48ebb2c8
core: kernel: Add svc_types header to include SVC-specific types.
2020-04-17 00:59:28 -04:00
82d457af37
core: kernel: Move SVC to its own namesapce.
2020-04-17 00:59:28 -04:00
b0e3cbef7a
kernel: resource_limit: Improvements to implementation.
2020-04-17 00:59:27 -04:00
f2676efe23
process: SetupMainThread: Zero out argument on process start.
2020-04-17 00:11:50 -04:00
86f9c9aa1c
Merge pull request #3671 from lioncash/switch
...
kernel/thread: Resolve -Wswitch warnings
2020-04-16 23:30:32 -04:00
77356731a9
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
1c340c6efa
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
213fff67bc
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
521c4c33b5
kernel/thread: Resolve -Wswitch warnings
2020-04-15 13:48:14 -04:00
dba112e510
core: hle: Implement separate A32/A64 SVC interfaces.
2020-03-02 21:52:03 -05:00
c083ea7d78
core: Implement separate A32/A64 ARM interfaces.
2020-03-02 21:51:57 -05:00
3d0a2375ca
Scheduler: Inline global scheduler in Scheduler Lock.
2020-02-22 12:39:17 -04:00
a1bf353780
Kernel: Correct pending feedback.
2020-02-22 11:51:03 -04:00
d219a96cc8
Kernel: Address Feedback.
2020-02-22 11:18:07 -04:00
ea956c823e
Kernel: Implement Scheduler locks
2020-02-22 11:18:07 -04:00
5c90d22f3d
Kernel: Implement Time Manager.
2020-02-22 11:18:07 -04:00
179bafa7cb
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
2020-02-22 11:18:06 -04:00
0728dfef84
Kernel: Make global scheduler depend on KernelCore
2020-02-22 11:18:06 -04:00
f552d553ba
Merge pull request #3401 from FernandoS27/synchronization
...
Set of refactors for Kernel Synchronization and Hardware Constants
2020-02-14 14:40:20 -05:00
2bc949628d
Core: Address Feedback
2020-02-13 19:10:33 -04:00
be269e21a5
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
9f2c703137
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
b80c348b09
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
1e6f8aba04
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
d23d504d77
Kernel: Refactor synchronization to better match RE
2020-02-11 18:47:31 -04:00
c5aefe42aa
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
2020-02-11 10:46:25 -04:00
aa3f9b9606
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
ba53543da6
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
7a547b9342
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
9751ccc5e0
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
2de2bb980e
kernel/physical_core: Make use of std::unique_ptr
...
shared_ptr was used in 2d1984c20c
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
51927bc9dc
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