Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ARM_Interface: Implement PageTableChanged | MerryMage | 2017-09-25 | 1 | -0/+5 |
| | |||||
* | memory: Remove GetCurrentPageTablePointers | MerryMage | 2017-09-24 | 1 | -4/+0 |
| | |||||
* | memory: Add GetCurrentPageTable/SetCurrentPageTable | MerryMage | 2017-09-24 | 1 | -1/+9 |
| | | | | Don't expose Memory::current_page_table as a global. | ||||
* | Merge pull request #2842 from Subv/switchable_page_table | B3n30 | 2017-09-15 | 1 | -79/+74 |
|\ | | | | | Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule | ||||
| * | Kernel/Memory: Make IsValidPhysicalAddress not go through the current process' virtual memory mapping. | Subv | 2017-09-15 | 1 | -2/+1 |
| | | |||||
| * | Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer. | Subv | 2017-09-15 | 1 | -3/+62 |
| | | |||||
| * | Kernel/Memory: Give each Process its own page table. | Subv | 2017-09-10 | 1 | -75/+12 |
| | | | | | | | | The loader is in charge of setting the newly created process's page table as the main one during the loading process. | ||||
* | | Use recursive_mutex instead of mutex to fix #2902 | danzel | 2017-08-29 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #2839 from Subv/global_kernel_lock | James Rowe | 2017-08-24 | 1 | -1/+8 |
|\ \ | |/ |/| | Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc). | ||||
| * | Kernel/Memory: Acquire the global HLE lock when a memory read/write operation falls outside of the fast path, for it might perform an MMIO operation. | Subv | 2017-08-22 | 1 | -1/+8 |
| | | |||||
* | | Merge pull request #2799 from yuriks/virtual-cached-range-flush | Weiyi Wang | 2017-07-22 | 1 | -52/+76 |
|\ \ | |/ |/| | Add address conversion functions returning optional, Add function to flush virtual region from rasterizer cache | ||||
| * | Memory: Add function to flush a virtual range from the rasterizer cache | Yuri Kunde Schlesner | 2017-06-22 | 1 | -39/+52 |
| | | | | | | | | | | | | 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. | ||||
| * | Memory: Add TryVirtualToPhysicalAddress, returning a boost::optional | Yuri Kunde Schlesner | 2017-06-22 | 1 | -4/+12 |
| | | |||||
| * | Memory: Make PhysicalToVirtualAddress return a boost::optional | Yuri Kunde Schlesner | 2017-06-22 | 1 | -9/+12 |
| | | | | | | | | And fix a few places in the code to take advantage of that. | ||||
* | | Memory: Fix crash when unmapping a VMA covering cached surfaces | Yuri Kunde Schlesner | 2017-06-22 | 1 | -5/+20 |
|/ | | | | | | | | | | Unmapping pages tries to flush any cached GPU surfaces touching that region. When a cached page is invalidated, GetPointerFromVMA() is used to restore the original pagetable pointer. However, since that VMA has already been deleted, this hits an UNREACHABLE case in that function. Now when this happens, just set the page type to Unmapped and continue, which arrives at the correct end result. | ||||
* | Memory: Add constants for the n3DS additional RAM | Yuri Kunde Schlesner | 2017-05-10 | 1 | -2/+6 |
| | | | | This is 4MB of extra, separate memory that was added on the New 3DS. | ||||
* | Revert "Memory: Always flush whole pages from surface cache" | bunnei | 2016-12-18 | 1 | -10/+0 |
| | |||||
* | Memory: Always flush whole pages from surface cache | Yuri Kunde Schlesner | 2016-12-15 | 1 | -0/+10 |
| | | | | | This prevents individual writes touching a cached page, but which don't overlap the surface, from constantly hitting the surface cache lookup. | ||||
* | Expose page table to dynarmic for optimized reads and writes to the JIT | James Rowe | 2016-11-25 | 1 | -6/+8 |
| | |||||
* | memory: fix IsValidVirtualAddress for RasterizerCachedMemory | wwylele | 2016-09-29 | 1 | -0/+3 |
| | | | | RasterizerCachedMemory doesn't has pointer but should be considered as valid | ||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 1 | -1/+1 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 1 | -4/+1 |
| | | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | ||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 1 | -35/+49 |
| | |||||
* | Memory: add ReadCString function | wwylele | 2016-08-27 | 1 | -0/+14 |
| | |||||
* | Memory: Handle RasterizerCachedMemory and RasterizerCachedSpecial page types in the memory block manipulation functions. | Subv | 2016-05-28 | 1 | -1/+60 |
| | |||||
* | Memory: Make ReadBlock and WriteBlock accept void pointers. | Subv | 2016-05-28 | 1 | -4/+4 |
| | |||||
* | Memory: CopyBlock | MerryMage | 2016-05-28 | 1 | -0/+41 |
| | |||||
* | Memory: ZeroBlock | MerryMage | 2016-05-21 | 1 | -0/+38 |
| | |||||
* | Memory: ReadBlock/WriteBlock | MerryMage | 2016-05-21 | 1 | -3/+74 |
| | |||||
* | Memory: IsValidVirtualAddress/IsValidPhysicalAddress | MerryMage | 2016-05-21 | 1 | -0/+21 |
| | |||||
* | HWRasterizer: Texture forwarding | tfarley | 2016-04-21 | 1 | -0/+140 |
| | |||||
* | Memory: Do correct Phys->Virt address translation for non-APP linheap | Yuri Kunde Schlesner | 2016-03-06 | 1 | -1/+1 |
| | |||||
* | Memory: Implement MMIO | MerryMage | 2016-01-30 | 1 | -6/+80 |
| | |||||
* | Fixed spelling errors | Gareth Poole | 2015-10-09 | 1 | -2/+2 |
| | |||||
* | memory: Get rid of pointer casts | Lioncash | 2015-09-10 | 1 | -14/+7 |
| | |||||
* | Kernel: Add more infrastructure to support different memory layouts | Yuri Kunde Schlesner | 2015-08-16 | 1 | -1/+4 |
| | | | | | | 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. | ||||
* | Memory: Move address type conversion routines to memory.cpp/h | Yuri Kunde Schlesner | 2015-08-16 | 1 | -1/+36 |
| | | | | | These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next. | ||||
* | Memory: Fix unmapping of pages | Yuri Kunde Schlesner | 2015-07-12 | 1 | -4/+2 |
| | |||||
* | Common: Cleanup memory and misc includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -3/+0 |
| | |||||
* | Kernel: Add VMManager to manage process address spaces | Yuri Kunde Schlesner | 2015-05-27 | 1 | -4/+8 |
| | | | | | | | | 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. | ||||
* | Memory: Use a table based lookup scheme to read from memory regions | Yuri Kunde Schlesner | 2015-05-15 | 1 | -120/+123 |
| | |||||
* | Memory: Read SharedPage directly from Memory::Read | Yuri Kunde Schlesner | 2015-05-15 | 1 | -1/+2 |
| | |||||
* | Memory: Read ConfigMem directly from Memory::Read | Yuri Kunde Schlesner | 2015-05-15 | 1 | -1/+2 |
| | |||||
* | Memmap: Re-organize memory function in two files | Yuri Kunde Schlesner | 2015-05-15 | 1 | -0/+197 |
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. |