summaryrefslogtreecommitdiffstats
path: root/src/core/memory.cpp (unfollow)
Commit message (Expand)AuthorFilesLines
2024-01-19SMMU: Add Android compatibilityFernando Sahmkow1-36/+26
2024-01-19SMMU: Implement physical memory mirroringFernando Sahmkow1-21/+32
2024-01-19SMMU: Initial adaptation to video_core.Fernando Sahmkow1-7/+18
2023-12-26core: track separate heap allocation for linuxLiam1-23/+63
2023-12-23general: properly support multiple memory instancesLiam1-14/+14
2023-12-04core: refactor emulated cpu core activationLiam1-7/+3
2023-11-25Address more review commentsGPUCode1-0/+50
2023-11-25arm: Implement native code execution backendLiam1-0/+13
2023-11-25core: Respect memory permissions in MapGPUCode1-4/+4
2023-11-12Memory: Fix invalidation handling from the CPU/ServicesFernando Sahmkow1-5/+20
2023-11-10kernel: add KPageTableBaseLiam1-3/+3
2023-07-25memory: check page against address space sizeLiam1-3/+18
2023-07-22memory: minimize dependency on processLiam1-58/+57
2023-07-15Fixes and workarounds to make UBSan happier on macOScomex1-13/+17
2023-07-15k_process: PageTable -> GetPageTableLiam1-4/+4
2023-07-03Use spans over guest memory where possible instead of copying data.Kelebek11-5/+49
2023-06-28Memory Tracking: Optimize tracking to only use atomic writes when contested with the host GPUFernando Sahmkow1-6/+33
2023-06-28MemoryTracking: Initial setup of atomic writes.Fernando Sahmkow1-3/+4
2023-05-07Address feedback, add CR notice, etcFernando Sahmkow1-6/+5
2023-05-07Settings: add option to enable / disable reactive flushingFernando Sahmkow1-1/+2
2023-05-07GPU: Add Reactive flushingFernando Sahmkow1-6/+21
2023-04-23Accuracy Normal: reduce accuracy further for perf improvements in Project LimeFernando Sahmkow1-1/+1
2023-03-24memory: rename global memory references to application memoryLiam1-25/+11
2023-03-22kernel: use KTypedAddress for addressesLiam1-143/+176
2023-02-14general: rename CurrentProcess to ApplicationProcessLiam1-5/+5
2023-01-25Revert "MemoryManager: use fastmem directly."Merry1-1/+1
2023-01-15memory: fix watchpoint use when fastmem is enabledLiam1-0/+4
2023-01-05MemoryManager: use fastmem directly.Fernando Sahmkow1-1/+1
2022-12-11memory: correct semantics of data cache management operationsLiam1-14/+15
2022-12-10memory: remove DEBUG_ASSERT pointer testLiam1-2/+0
2022-11-12kernel: implement FlushProcessDataCacheLiam1-0/+65
2022-10-22general: Resolve -Wunused-lambda-capture and C5233Morph1-21/+16
2022-10-19core: device_memory: Templatize GetPointer(..).bunnei1-3/+3
2022-10-06MemoryManager: Fix errors popping out.Fernando Sahmkow1-0/+9
2022-08-20code: dodge PAGE_SIZE #defineKyle Kienapfel1-39/+42
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-3/+2
2022-07-22Project AndioKelebek11-1/+5
2022-06-16core/debugger: memory breakpoint supportLiam1-1/+78
2022-06-01core/debugger: Implement new GDB stub debuggerLiam1-0/+13
2022-03-26Revert "Memory GPU <-> CPU: reduce infighting in the texture cache by adding CPU Cached memory."bunnei1-1/+1
2022-03-25Memory: Don't protect reads on Normal accuracy.Fernando Sahmkow1-1/+1
2022-02-21core: device_memory: Use memory size reported by KSystemControl.bunnei1-2/+1
2021-09-30prevent access violation from iob in Memory::IsValidVirtualAddressAndrew Strelsky1-1/+5
2021-08-07memory: Address lioncash's reviewyzct123451-52/+6
2021-08-07memory: Dedup Read and Write and fix logging bugsyzct123451-129/+115
2021-08-05memory: Clean up CopyBlock tooyzct123451-36/+15
2021-08-05memory: Address lioncash's reviewyzct123451-6/+7
2021-08-05memory: Clean up codeyzct123451-229/+77
2021-06-11General: Add settings for fastmem and disabling adress space check.FernandoS271-4/+10
2021-06-11core: Make use of fastmemMarkus Wick1-0/+12
2021-05-29core/memory: Check our memory fallbacks for out-of-bound behavior.Markus Wick1-4/+39
2021-05-21hle: kernel: Use host memory allocations for KSlabMemory.bunnei1-21/+0
2021-05-06hle: kernel: Rename Process to KProcess.bunnei1-17/+17
2021-05-06core: memory: Add a work-around to allocate and access kernel memory regions by vaddr.bunnei1-1/+29
2021-02-19hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei1-1/+1
2021-01-01memory: Remove MemoryHookMerryMage1-30/+0
2020-12-30core/memory: Read and write page table atomicallyReinUsesLisp1-123/+64
2020-12-25core: memory: Ensure thread safe access when pages are rasterizer cached (#5206)bunnei1-12/+40
2020-12-08memory: Resolve -Wdocumentation warning for Write()Lioncash1-2/+0
2020-10-21Revert "core: Fix clang build"bunnei1-1/+1
2020-10-18core: Fix clang buildLioncash1-1/+1
2020-10-13core/CMakeLists: Make some warnings errorsLioncash1-6/+6
2020-09-23memory: Resolve a -Wdocumentation warningLioncash1-1/+1
2020-07-28common/atomic_ops: Don't cast away volatile from pointersLioncash1-6/+4
2020-07-05memory: Set page-table pointers before setting attribute = MemoryMerryMage1-2/+5
2020-06-27General: Initial Setup for Single Core.Fernando Sahmkow1-4/+4
2020-06-27ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow1-0/+98
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow1-7/+4
2020-04-17core: memory: Fix memory access on page boundaries.bunnei1-6/+39
2020-04-17core: memory: Updates for new VMM.bunnei1-100/+52
2020-04-17core: memory: Move to Core::Memory namespace.bunnei1-2/+2
2020-04-06Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow1-0/+115
2020-04-06GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddrFernando Sahmkow1-6/+6
2020-01-18core/memory: Create a special MapMemoryRegion for physical memory.Markus Wick1-0/+11
2020-01-01core/memory + arm/dynarmic: Use a global offset within our arm page table.Markus Wick1-9/+16
2019-11-27core/memory; Migrate over SetCurrentPageTable() to the Memory classLioncash1-15/+16
2019-11-27core/memory: Migrate over GetPointerFromVMA() to the Memory classLioncash1-36/+36
2019-11-27core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory classLioncash1-92/+128
2019-11-27core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash1-96/+132
2019-11-27core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory classLioncash1-89/+110
2019-11-27core/memory: Migrate over RasterizerMarkRegionCached() to the Memory classLioncash1-63/+67
2019-11-27core/memory: Migrate over ReadCString() to the Memory classLioncash1-14/+19
2019-11-27core/memory: Migrate over GetPointer()Lioncash1-15/+23
2019-11-27core/memory: Move memory read/write implementation functions into an anonymous namespaceLioncash1-97/+98
2019-11-27core/memory: Migrate over address checking functions to the new Memory classLioncash1-20/+31
2019-11-27core/memory: Migrate over memory mapping functions to the new Memory classLioncash1-71/+106
2019-11-27core/memory: Introduce skeleton of Memory classLioncash1-0/+12
2019-10-06core: Remove Core::CurrentProcess()Lioncash1-5/+5
2019-09-19Core/Memory: Only FlushAndInvalidate GPU if the page is marked as RasterizerCachedMemoryFernando Sahmkow1-2/+7
2019-07-06memory: Remove unused includesLioncash1-2/+0
2019-04-12core/cpu_core_manager: Create threads separately from initialization.Lioncash1-8/+8
2019-04-07core/memory: Remove GetCurrentPageTable()Lioncash1-4/+0
2019-03-21memory: Check that core is powered on before attempting to use GPU.bunnei1-1/+1
2019-03-17core: Move PageTable struct into Common.bunnei1-74/+60
2019-03-16memory: Simplify rasterizer cache operations.bunnei1-60/+21
2019-03-15gpu: Use host address for caching instead of guest address.bunnei1-5/+8
2019-03-07gpu: Move command processing to another thread.bunnei1-4/+4
2019-03-02Memory: don't lock hle mutex in memory read/writeWeiyi Wang1-6/+0
2019-02-27Speed up memory page mapping (#2141)Annomatg1-6/+11
2018-12-19Fixed uninitialized memory due to missing returns in canaryDavid Marcec1-0/+1
2018-12-06memory: Convert ASSERT into a DEBUG_ASSERT within GetPointerFromVMA()Lioncash1-1/+1
2018-12-06vm_manager: Make vma_map privateLioncash1-6/+5
2018-12-05Call shrink_to_fit after page-table vector resizing to cause crt to actually lower vector capacity. For 36-bit titles saves 800MB of commit.heapo1-0/+8
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L1-1/+1
2018-09-30kernel/process: Make data member variables privateLioncash1-7/+7
2018-09-25memory: Dehardcode the use of fixed memory range constantsLioncash1-5/+7
2018-09-25memory: Dehardcode the use of a 36-bit address spaceLioncash1-2/+16
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-27/+28
2018-08-31gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.bunnei1-36/+15
2018-08-28gpu: Make memory_manager privateLioncash1-2/+2
2018-08-04renderer_base: Make Rasterizer() return the rasterizer by referenceLioncash1-4/+4
2018-08-04video_core: Eliminate the g_renderer global variableLioncash1-8/+10
2018-08-03memory: Remove unused GetSpecialHandlers() functionLioncash1-16/+0
2018-08-03core/memory: Get rid of 3DS leftoversLioncash1-106/+0
2018-07-19core/memory: Remove unused function GetSpecialHandlers() and an unused variable in ZeroBlock()Lioncash1-7/+0
2018-07-19core/memory, core/hle/kernel: Use std::move where applicableLioncash1-3/+5
2018-07-03Update clang formatJames Rowe1-12/+12
2018-07-03Rename logging macro back to LOG_*James Rowe1-12/+12
2018-06-22Kernel/Arbiters: Fix casts, cleanup comments/magic numbersMichael Scire1-0/+4
2018-05-11core: Implement multicore support.bunnei1-2/+7
2018-05-02general: Make formatting of logged hex values more straightforwardLioncash1-11/+11
2018-04-27general: Convert assertion macros over to be fmt-compatibleLioncash1-10/+9
2018-04-25Memory: Added a missing shortcut for Memory::CopyBlock for the current process.Subv1-0/+4
2018-04-25core/memory: Amend address widths in assertsLioncash1-2/+2
2018-04-25core/memory: Move logging macros over to new fmt-capable onesLioncash1-22/+24
2018-04-25gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei1-16/+48
2018-03-27memory: Fix cast for ReadBlock/WriteBlock/ZeroBlock/CopyBlock.bunnei1-4/+8
2018-03-27memory: Add RasterizerMarkRegionCached code and cleanup.bunnei1-200/+190
2018-03-23memory: Fix typo in RasterizerFlushVirtualRegion.bunnei1-3/+3
2018-03-23memory: RasterizerFlushVirtualRegion should also check process image region.bunnei1-0/+1
2018-03-23rasterizer: Flush and invalidate regions should be 64-bit.bunnei1-2/+2
2018-03-23memory: Port RasterizerFlushVirtualRegion from Citra.bunnei1-0/+39
2018-03-22Remove more N3DS ReferencesN00byKing1-9/+0
2018-03-14core: Move process creation out of global state.bunnei1-15/+15
2018-02-21memory: LOG_ERROR when falling off end of page tableMerryMage1-0/+11
2018-02-14memory: Silence formatting sepecifier warningsLioncash1-21/+30
2018-01-27memory: Replace all memory hooking with Special regionsMerryMage1-317/+163
2018-01-20memory: Return false for large VAddr in IsValidVirtualAddressRozlette1-0/+3
2018-01-13Remove gpu debugger and get yuzu qt to compileJames Rowe1-40/+1
2018-01-09fix macos buildMerryMage1-4/+4
2018-01-01core/video_core: Fix a bunch of u64 -> u32 warnings.bunnei1-8/+8
2017-10-19memory: Print addresses as 64-bit.bunnei1-2/+2
2017-10-01Memory: Make WriteBlock take a Process parameter on which to operateSubv1-10/+17
2017-10-01Memory: Make ReadBlock take a Process parameter on which to operateSubv1-12/+28
2017-09-30memory: Log with 64-bit values.bunnei1-8/+8
2017-09-30core: Various changes to support 64-bit addressing.bunnei1-22/+22
2017-09-30Fixed type conversion ambiguityHuw Pascoe1-14/+22
2017-09-27Memory: Allow IsValidVirtualAddress to be called with a specific process parameter.Subv1-7/+18
2017-09-26Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions.Subv1-1/+16
2017-09-25ARM_Interface: Implement PageTableChangedMerryMage1-0/+5
2017-09-24memory: Remove GetCurrentPageTablePointersMerryMage1-4/+0
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage1-1/+9
2017-09-15Kernel/Memory: Make IsValidPhysicalAddress not go through the current process' virtual memory mapping.Subv1-2/+1
2017-09-15Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer.Subv1-3/+62
2017-09-10Kernel/Memory: Give each Process its own page table.Subv1-75/+12
2017-08-29Use recursive_mutex instead of mutex to fix #2902danzel1-2/+2
2017-08-22Kernel/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.Subv1-1/+8
2017-06-22Memory: Add function to flush a virtual range from the rasterizer cacheYuri Kunde Schlesner1-39/+52
2017-06-22Memory: Fix crash when unmapping a VMA covering cached surfacesYuri Kunde Schlesner1-5/+20
2017-06-22Memory: Add TryVirtualToPhysicalAddress, returning a boost::optionalYuri Kunde Schlesner1-4/+12
2017-06-22Memory: Make PhysicalToVirtualAddress return a boost::optionalYuri Kunde Schlesner1-9/+12
2017-05-10Memory: Add constants for the n3DS additional RAMYuri Kunde Schlesner1-2/+6
2016-12-18Revert "Memory: Always flush whole pages from surface cache"bunnei1-10/+0
2016-12-15Memory: Always flush whole pages from surface cacheYuri Kunde Schlesner1-0/+10
2016-11-25Expose page table to dynarmic for optimized reads and writes to the JITJames Rowe1-6/+8
2016-09-29memory: fix IsValidVirtualAddress for RasterizerCachedMemorywwylele1-0/+3
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-4/+1
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-35/+49
2016-08-27Memory: add ReadCString functionwwylele1-0/+14
2016-05-28Memory: Handle RasterizerCachedMemory and RasterizerCachedSpecial page types in the memory block manipulation functions.Subv1-1/+60
2016-05-28Memory: Make ReadBlock and WriteBlock accept void pointers.Subv1-4/+4
2016-05-28Memory: CopyBlockMerryMage1-0/+41
2016-05-21Memory: ZeroBlockMerryMage1-0/+38
2016-05-21Memory: ReadBlock/WriteBlockMerryMage1-3/+74
2016-05-21Memory: IsValidVirtualAddress/IsValidPhysicalAddressMerryMage1-0/+21
2016-04-21HWRasterizer: Texture forwardingtfarley1-0/+140
2016-03-06Memory: Do correct Phys->Virt address translation for non-APP linheapYuri Kunde Schlesner1-1/+1
2016-01-30Memory: Implement MMIOMerryMage1-6/+80
2015-10-09Fixed spelling errorsGareth Poole1-2/+2
2015-09-10memory: Get rid of pointer castsLioncash1-14/+7
2015-08-16Kernel: Add more infrastructure to support different memory layoutsYuri Kunde Schlesner1-1/+4
2015-08-16Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner1-1/+36
2015-07-12Memory: Fix unmapping of pagesYuri Kunde Schlesner1-4/+2
2015-06-28Common: Cleanup memory and misc includes.Emmanuel Gil Peyrot1-3/+0
2015-05-27Kernel: Add VMManager to manage process address spacesYuri Kunde Schlesner1-4/+8
2015-05-15Memory: Use a table based lookup scheme to read from memory regionsYuri Kunde Schlesner1-120/+123
2015-05-15Memory: Read SharedPage directly from Memory::ReadYuri Kunde Schlesner1-1/+2
2015-05-15Memory: Read ConfigMem directly from Memory::ReadYuri Kunde Schlesner1-1/+2
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-84/+6
2015-05-15Memmap: Remove unused declarationsYuri Kunde Schlesner1-11/+3
2015-05-09Memory: Support more regions in the VAddr-PAddr translation functionsYuri Kunde Schlesner1-24/+24
2015-05-09Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner1-38/+26
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-1/+3
2015-05-02Memory: Properly cleanup & shutdown.bunnei1-13/+8
2015-04-06Clean-up mem_map constants and fix framebuffer translation errorsYuri Kunde Schlesner1-7/+11
2015-03-17dyncom: Make Load/Store instructions support big endianLioncash1-0/+6
2015-02-22Cleaned up unaligned access.Kevin Hartman1-18/+0
2015-02-11Asserts: break/crash program, fit to style guide; log.h->assert.harchshift1-2/+2
2015-01-16Add some support for the shared page (currently 3d slider is implemented)Zhuowei Zhang1-0/+5
2014-12-30MemMap: Add support for DSP Read & Writes in the memory mappurpasmart961-2/+8
2014-12-21License changepurpasmart961-1/+1
2014-12-14MemMap: Added AXI_WRAM & SHARED_PAGE along with other stuffpurpasmart961-10/+0
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner1-6/+6
2014-12-12MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.bunnei1-16/+16
2014-12-03MemMap: Updated memory map to subtract base address instead of mask.bunnei1-21/+21
2014-11-27Fixed formatting and switch statement warningsvaguilar1-2/+2
2014-11-19Add static to some variablesLioncash1-9/+9
2014-09-28Fix warnings in core and commonLioncash1-1/+1
2014-09-09core: Prune redundant includesarchshift1-1/+0
2014-08-31Introduce VAddr and PAddr typedefs for ARM addresses.Yuri Kunde Schlesner1-16/+16
2014-08-17Core: Fix undefined behavior in mem_map_funcs' WriteBlock functionLioncash1-4/+8
2014-08-12Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.Tony Wasserka1-32/+36
2014-08-06MemMap: Fixed typo with GetPointer to VRAM address.bunnei1-1/+1
2014-08-06MemMap: Added an error for unaligned 16-bit memory reads.bunnei1-0/+7
2014-08-06MemMap: Removed Read64 function.bunnei1-6/+0
2014-08-06MemMap: Fix Read32 for unaligned memory reads.bunnei1-12/+23
2014-07-05Memory: Removed deprecated MapBlock_Shared function.bunnei1-22/+0
2014-07-05mem_map: Updated interface to expose template functions to other modules.bunnei1-10/+10
2014-06-25MemMap: Added a WriteBlock function to write a buffer of data to memory.bunnei1-0/+12
2014-05-30hle: cleaned up log messagesbunnei1-3/+2
2014-05-16added memory mapped region for system mem - sdk demos load a segment here on ELF loadbunnei1-1/+13
2014-05-08- removed HLE mem "hack" and replaced with kernel mem regionbunnei1-11/+11
2014-05-07added mem_map read for config_membunnei1-7/+12
2014-05-01added virtual memory map for ExeFS (where ARM11 code is supposed to be loaded)bunnei1-1/+13
2014-05-01reorganized memory regions enum, added regions for ExeFS codebunnei1-1/+1
2014-04-28added virtual address conversion for firmware FW0Bbunnei1-5/+9
2014-04-27added helper functions to mem_map to convert physical addresses to virtual addressesbunnei1-1/+1
2014-04-26- changed HW IO map to use virtual addressesbunnei1-2/+10
2014-04-26added vram to memory_mapbunnei1-7/+13
2014-04-25removed some cruftbunnei1-7/+1
2014-04-25- added preliminary support for svc_MapMemoryBlockbunnei1-6/+21
2014-04-25added functions to map Heap and Shared memory spacebunnei1-3/+51
2014-04-18added GSP heap memory allocationbunnei1-0/+26
2014-04-18fixed bug in Memory::GetPointerbunnei1-2/+2
2014-04-18added memory read/write to GSP heapbunnei1-3/+11
2014-04-18more various refactors to memory interfacebunnei1-23/+17
2014-04-18cleaned up memory interfaces a lot, removed some hackish stuffbunnei1-96/+48
2014-04-17changed unknown memory read/write to report the sizebunnei1-2/+3
2014-04-13added OS memory read/write for thread command bufferbunnei1-5/+5
2014-04-13- added HLE to connect to "srv:" servicebunnei1-2/+16
2014-04-11cleaned up some logging messagesbunnei1-1/+1
2014-04-09fixed project includes to use new directory structurebunnei1-3/+3
2014-04-09got rid of 'src' folders in each sub-projectbunnei1-0/+0
2014-04-09fixed all license file headers in corebunnei1-23/+3
2014-04-07added hack physical memory reads with Memory::GetPointerbunnei1-2/+9
2014-04-05added initial support for hw.cpp modulebunnei1-3/+15
2014-04-05added hw module to interface h/w register reads/writesbunnei1-3/+2
2014-04-05renamed some functionsbunnei1-11/+11
2014-04-04added hack to allow physical mem read/writesbunnei1-2/+20
2014-04-04removed some useless log messagesbunnei1-2/+0
2014-04-02-converted tabs to spacesbunnei1-100/+99
2014-04-01added support for reading/writing to stack membunnei1-1/+10
2014-03-25added a GetPointer function to Memory for use with ELF loadingbunnei1-28/+28
2013-09-20added mem_map hardware writingShizZy1-52/+71
2013-09-19added hw R/W/ memory functionsShizZy1-0/+157