Lioncash
7fd598636e
memory: Dehardcode the use of a 36-bit address space
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.
7 years ago
Lioncash
75603b005b
process/vm_manager: Amend API to allow reading parameters from NPDM metadata
Rather than hard-code the address range to be 36-bit, we can derive the
parameters from supplied NPDM metadata if the supplied exectuable
supports it. This is the bare minimum necessary for this to be possible.
The following commits will rework the memory code further to adjust to
this.
7 years ago
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
7 years ago
Lioncash
c4e0c3d76c
kernel/vm_manager: Use const where applicable
Makes our immutable state explicit.
8 years ago
Lioncash
843dd62c81
core: Replace usages of LOG_GENERIC with new fmt-capable equivalents
8 years ago
bunnei
34a29ad051
svc: Use more correct values for GetInfo MapRegion and NewMapRegion.
8 years ago
bunnei
8be7131033
MemoryState: Add additional memory states and improve naming.
8 years ago
MerryMage
738f91a57d
memory: Replace all memory hooking with Special regions
8 years ago
bunnei
e1ee8f4657
svc: Fix svcGetInfo MapRegionBaseAddr.
8 years ago
bunnei
f0eab802e8
vm_manager: Use a more reasonable MAX_ADDRESS size.
8 years ago
bunnei
e9710a2cf7
vm_manager: Stub out a bunch of interfaces used by svcGetInfo.
8 years ago
bunnei
dcd6bb82f7
hle: Fix QueryMemory response for MemoryInfo.
8 years ago
bunnei
f01472a5ff
core: Various changes to support 64-bit addressing.
8 years ago
Subv
6d2734a074
Kernel/Memory: Give each Process its own page table.
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
9 years ago
Yuri Kunde Schlesner
2cdb40d709
Kernel: Centralize error definitions in errors.h
9 years ago
Emmanuel Gil Peyrot
ebdae19fd2
Remove empty newlines in #include blocks.
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
9 years ago
Emmanuel Gil Peyrot
dc8479928c
Sources: Run clang-format on everything.
9 years ago
MerryMage
2b93313348
Memory: Implement MMIO
10 years ago
Yuri Kunde Schlesner
cdeeecf080
Kernel: Properly implement ControlMemory FREE and COMMIT
11 years ago
Yuri Kunde Schlesner
306408d174
VMManager: Introduce names for used ResultCodes
11 years ago
Yuri Kunde Schlesner
b9a9ad9742
VMManager: Make LogLayout log level configurable as a parameter
11 years ago
Yuri Kunde Schlesner
785407d06f
VMManager: Change block offsets to size_t
11 years ago
Yuri Kunde Schlesner
5c5cf2f8e0
Core: Properly configure address space when loading a binary
The code now properly configures the process image to match the loaded
binary segments (code, rodata, data) instead of just blindly allocating
a large chunk of dummy memory.
11 years ago
Emmanuel Gil Peyrot
aea15f5c73
Core: Cleanup core includes.
11 years ago
Yuri Kunde Schlesner
0a60aa75c2
Kernel: Add VMManager to manage process address spaces
This enables more dynamic management of the process address space,
compared to just directly configuring the page table for major areas.
This will serve as the foundation upon which the rest of the Kernel
memory management functions will be built.
11 years ago