Commit Graph

42 Commits (c1a8e4bfe46255e850129b00c01e818b479fce8f)

Author SHA1 Message Date
MerryMage 738f91a57d memory: Replace all memory hooking with Special regions 8 years ago
David cb8d5328d5
Update memory.h 8 years ago
David Marcec c903372111 Increased heap size and changed tls area vaddr 8 years ago
bunnei 93480b10ef core/video_core: Fix a bunch of u64 -> u32 warnings. 8 years ago
bunnei 6e021f22b8 svc: Implement MapMemory. 8 years ago
bunnei 9ceb0d9381 memory: Support 32-bit paging, move heap address space up. 8 years ago
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
8 years ago
bunnei 23ce4f5afc loader: Various improvements for NSO/NRO loaders. 8 years ago
Subv 1f2de7501b Memory: Make WriteBlock take a Process parameter on which to operate 8 years ago
Subv 811c01e5fe Memory: Make ReadBlock take a Process parameter on which to operate 8 years ago
bunnei f01472a5ff core: Various changes to support 64-bit addressing. 8 years ago
Subv 35da7f57ef Memory: Allow IsValidVirtualAddress to be called with a specific process parameter.
There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
8 years ago
MerryMage 4e5eb2044a memory: Remove GetCurrentPageTablePointers 8 years ago
MerryMage c02bbb7030 memory: Add GetCurrentPageTable/SetCurrentPageTable
Don't expose Memory::current_page_table as a global.
8 years ago
Subv 214150f00c Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer. 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.
8 years ago
Yuri Kunde Schlesner d553135748 Memory: Add function to flush a virtual range from the rasterizer cache
This is slightly more ergonomic to use, correctly handles virtual
regions which are disjoint in physical addressing space, and checks only
regions which can be cached by the rasterizer.
9 years ago
Yuri Kunde Schlesner 6ae0086b39 Memory: Add TryVirtualToPhysicalAddress, returning a boost::optional 9 years ago
Yuri Kunde Schlesner 326e7c7020 Memory: Make PhysicalToVirtualAddress return a boost::optional
And fix a few places in the code to take advantage of that.
9 years ago
Yuri Kunde Schlesner 42b198eb0a Memory: Add enum definitions for the n3DS FCRAM size 9 years ago
Yuri Kunde Schlesner d3db770cad Memory: Add constants for the n3DS additional RAM
This is 4MB of extra, separate memory that was added on the New 3DS.
9 years ago
James Rowe bbe57a66ca Expose page table to dynarmic for optimized reads and writes to the JIT 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
wwylele b2df959733 Memory: add ReadCString function 9 years ago
Subv 660499ac01 Memory: Make ReadBlock and WriteBlock accept void pointers. 10 years ago
MerryMage 31d49e0109 Memory: CopyBlock 10 years ago
MerryMage ca17df5757 Memory: ZeroBlock 10 years ago
MerryMage 3873b36db3 Memory: ReadBlock/WriteBlock 10 years ago
MerryMage c084fc824c Memory: IsValidVirtualAddress/IsValidPhysicalAddress 10 years ago
bunnei 0d8bd3ba36 Merge pull request #1695 from Subv/tls_alloc
Kernel/Threads: Dynamically allocate the TLS region for threads.
10 years ago
Subv d192fb066d Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.
Each thread gets a 0x200-byte area from the 0x1000-sized page, when all 8 thread slots in a single page are used up, the kernel allocates a new page to hold another 8 entries.

This is consistent with what the real kernel does.
10 years ago
tfarley 22f3a7e94c HWRasterizer: Texture forwarding 10 years ago
Yuri Kunde Schlesner 78735e2ada Fix broken boot introduced by last-minute change in #1025 10 years ago
Yuri Kunde Schlesner 14eca982f4 Kernel: Implement svcGetProcessInfo in a basic way
This also adds some basic memory usage accounting. These two types are
used by Super Smash Bros. during startup.
10 years ago
Yuri Kunde Schlesner 74d4bc0af1 Kernel: Add more infrastructure to support different memory layouts
This adds some structures necessary to support multiple memory regions
in the future. It also adds support for different system memory types
and the new linear heap mapping at 0x30000000.
10 years ago
Yuri Kunde Schlesner e2c7954be5 Memory: Move address type conversion routines to memory.cpp/h
These helpers aren't really part of the kernel, and mem_map.cpp/h is
going to be moved there next.
10 years ago
Yuri Kunde Schlesner ccab02c723 Memory: Move PAGE_MASK and PAGE_BITS to memory.h 10 years ago
Emmanuel Gil Peyrot 2d044a67c9 Common: Cleanup memory and misc includes. 11 years ago
Emmanuel Gil Peyrot b1503b2020 Remove every trailing whitespace from the project (but externals). 11 years ago
Yuri Kunde Schlesner dd4430609a Memory: Use a table based lookup scheme to read from memory regions 11 years ago
Yuri Kunde Schlesner 7ada357b2d Memmap: Re-organize memory function in two files
memory.cpp/h contains definitions related to acessing memory and
configuring the address space
mem_map.cpp/h contains higher-level definitions related to configuring
the address space accoording to the kernel and allocating memory.
11 years ago