summaryrefslogtreecommitdiffstats
path: root/src/core/memory.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-08-06memory: Make prototype parameter names match their definitionsLioncash1-5/+5
Keeps the code consistent.
2018-08-06memory: Correct prototype of ZeroBlockLioncash1-1/+1
Previously, the prototype wasn't matching the definition, which has a Processor parameter before the destination address.
2018-08-06memory: Remove unnecessary const qualifiers in prototypesLioncash1-9/+8
These aren't necessary, as value-wise const only matters in the definition.
2018-08-03core/memory: Get rid of 3DS leftoversLioncash1-87/+1
Removes leftover code from citra that isn't needed.
2018-06-22Kernel/Arbiters: Fix casts, cleanup comments/magic numbersMichael Scire1-0/+7
2018-04-25gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei1-1/+2
2018-03-31memory: Fix stack region.bunnei1-4/+5
2018-03-27memory: Add RasterizerMarkRegionCached code and cleanup.bunnei1-0/+5
2018-03-23rasterizer: Flush and invalidate regions should be 64-bit.bunnei1-1/+1
2018-03-23memory: Port RasterizerFlushVirtualRegion from Citra.bunnei1-1/+19
2018-03-22Remove more N3DS ReferencesN00byKing1-11/+0
2018-03-16memory: Add regions for map region, "new" map region, etc.bunnei1-19/+29
2018-02-12arm_dynarmic: Support direct page table accessMerryMage1-4/+5
2018-01-27memory: Replace all memory hooking with Special regionsMerryMage1-51/+21
2018-01-17Update memory.hDavid1-2/+2
2018-01-16Increased heap size and changed tls area vaddrDavid Marcec1-2/+2
2018-01-01core/video_core: Fix a bunch of u64 -> u32 warnings.bunnei1-5/+5
2017-12-29svc: Implement MapMemory.bunnei1-1/+1
2017-10-23memory: Support 32-bit paging, move heap address space up.bunnei1-2/+2
2017-10-10loader: Various improvements for NSO/NRO loaders.bunnei1-2/+2
2017-10-01Memory: Make WriteBlock take a Process parameter on which to operateSubv1-0/+2
2017-10-01Memory: Make ReadBlock take a Process parameter on which to operateSubv1-0/+2
2017-09-30core: Various changes to support 64-bit addressing.bunnei1-8/+8
2017-09-27Memory: Allow IsValidVirtualAddress to be called with a specific process parameter.Subv1-0/+7
There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
2017-09-24memory: Remove GetCurrentPageTablePointersMerryMage1-6/+0
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage1-1/+2
Don't expose Memory::current_page_table as a global.
2017-09-15Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer.Subv1-2/+0
2017-09-10Kernel/Memory: Give each Process its own page table.Subv1-1/+59
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-06-22Memory: Add function to flush a virtual range from the rasterizer cacheYuri Kunde Schlesner1-0/+13
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.
2017-06-22Memory: Add TryVirtualToPhysicalAddress, returning a boost::optionalYuri Kunde Schlesner1-3/+11
2017-06-22Memory: Make PhysicalToVirtualAddress return a boost::optionalYuri Kunde Schlesner1-3/+4
And fix a few places in the code to take advantage of that.
2017-06-21Memory: Add enum definitions for the n3DS FCRAM sizeYuri Kunde Schlesner1-1/+3
2017-05-10Memory: Add constants for the n3DS additional RAMYuri Kunde Schlesner1-0/+10
This is 4MB of extra, separate memory that was added on the New 3DS.
2016-11-25Expose page table to dynarmic for optimized reads and writes to the JITJames Rowe1-0/+9
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-1/+0
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-35/+35
2016-08-27Memory: add ReadCString functionwwylele1-0/+3
2016-05-28Memory: Make ReadBlock and WriteBlock accept void pointers.Subv1-2/+2
2016-05-28Memory: CopyBlockMerryMage1-2/+2
2016-05-21Memory: ZeroBlockMerryMage1-0/+1
2016-05-21Memory: ReadBlock/WriteBlockMerryMage1-1/+3
2016-05-21Memory: IsValidVirtualAddress/IsValidPhysicalAddressMerryMage1-0/+3
2016-05-07Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.Subv1-6/+0
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.
2016-04-21HWRasterizer: Texture forwardingtfarley1-0/+16
2015-08-22Fix broken boot introduced by last-minute change in #1025Yuri Kunde Schlesner1-1/+1
2015-08-16Kernel: Implement svcGetProcessInfo in a basic wayYuri Kunde Schlesner1-1/+3
This also adds some basic memory usage accounting. These two types are used by Super Smash Bros. during startup.
2015-08-16Kernel: Add more infrastructure to support different memory layoutsYuri Kunde Schlesner1-0/+5
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.
2015-08-16Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner1-0/+11
These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next.
2015-08-16Memory: Move PAGE_MASK and PAGE_BITS to memory.hYuri Kunde Schlesner1-0/+2
2015-06-28Common: Cleanup memory and misc includes.Emmanuel Gil Peyrot1-0/+2
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot1-1/+1
2015-05-15Memory: Use a table based lookup scheme to read from memory regionsYuri Kunde Schlesner1-0/+4
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-74/+2
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.
2015-05-15Memmap: Remove unused declarationsYuri Kunde Schlesner1-9/+0
2015-05-12Core/Memory: Add TLS support for creating up to 300 threadsSubv1-3/+5
2015-05-09Memory: Add GetPhysicalPointer helper functionYuri Kunde Schlesner1-0/+9
2015-05-09Memory: Support more regions in the VAddr-PAddr translation functionsYuri Kunde Schlesner1-4/+9
Also adds better documentation and removes the one-off reimplementation of the function in pica.h.
2015-05-09Memory: Sort memory region variables by VAddrYuri Kunde Schlesner1-7/+7
2015-05-09Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner1-75/+88
2015-05-09Process: Support parsing of exheader kernel capsYuri Kunde Schlesner1-0/+2
2015-05-08Common: Remove mem_arena.cpp/hYuri Kunde Schlesner1-12/+0
It is superfluous for Citra. (It's only really necessary if you're doing JIT. We were using it but not taking any advantage from it.) This should make 32-bit builds work again.
2015-05-07Clean-up includesYuri Kunde Schlesner1-3/+0
2015-05-02Memory: Properly cleanup & shutdown.bunnei1-0/+6
2015-04-06Clean-up mem_map constants and fix framebuffer translation errorsYuri Kunde Schlesner1-16/+10
2015-03-17dyncom: Make Load/Store instructions support big endianLioncash1-0/+1
2015-01-30Move VAddr/PAddr typedefs to kernel.hYuri Kunde Schlesner1-9/+2
2014-12-30MemMap: Add support for DSP Read & Writes in the memory mappurpasmart961-0/+1
2014-12-21License changepurpasmart961-1/+1
2014-12-14MemMap: Added AXI_WRAM & SHARED_PAGE along with other stuffpurpasmart961-59/+76
Got rid of I/O address's since the I/O addresses range's overlap with other address's types such as vram, these I/O addresses need to be done in an different way.
2014-12-12MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.bunnei1-7/+7
- Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU).
2014-12-04mem_map: Make enum for addresses use u32 as the underlying typeLioncash1-1/+1
2014-12-04Add stub for ConvertProcessFromDspDramarchshift1-1/+3
Should theoretically push retail stuff further along
2014-12-03MemMap: Updated memory map to subtract base address instead of mask.bunnei1-10/+0
- More readable, a little less error prone. Conflicts: src/core/mem_map.h src/core/mem_map_funcs.cpp
2014-11-18Fix documentation of parametersLioncash1-1/+1
2014-11-17mem_map: Add missing prototype for Write64Lioncash1-0/+1
2014-08-31Introduce VAddr and PAddr typedefs for ARM addresses.Yuri Kunde Schlesner1-15/+24
2014-08-12Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.Tony Wasserka1-15/+7
This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible. This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though.
2014-07-05Memory: Removed deprecated MapBlock_Shared function.bunnei1-8/+0
2014-07-05mem_map: Updated interface to expose template functions to other modules.bunnei1-0/+6
2014-06-25MemMap: Added a WriteBlock function to write a buffer of data to memory.bunnei1-0/+2
2014-05-16added memory mapped region for system mem - sdk demos load a segment here on ELF loadbunnei1-0/+7
2014-05-08added kernel memory to mem_mapbunnei1-0/+6
2014-05-07added mem_map read for config_membunnei1-0/+5
2014-05-01fixed a bug where ExeFs code was being incorrectly maskedbunnei1-1/+1
2014-05-01added virtual memory map for ExeFS (where ARM11 code is supposed to be loaded)bunnei1-0/+1
2014-05-01reorganized memory regions enum, added regions for ExeFS codebunnei1-20/+25
2014-04-28added virtual address conversion for firmware FW0Bbunnei1-0/+2
2014-04-27added helper functions to mem_map to convert physical addresses to virtual addressesbunnei1-0/+14
2014-04-26- changed HW IO map to use virtual addressesbunnei1-1/+3
- added hooks to catch LCD IO read/writes
2014-04-26added vram to memory_mapbunnei1-1/+2
2014-04-25- added preliminary support for svc_MapMemoryBlockbunnei1-0/+9
- added shared memory region - moarrrr cleanups to memory_map
2014-04-25added functions to map Heap and Shared memory spacebunnei1-4/+23
2014-04-18added GSP heap memory allocationbunnei1-0/+25
2014-04-18moved enums into Memory:: namespacebunnei1-4/+2
2014-04-18added memory read/write to GSP heapbunnei1-1/+3
2014-04-18more various refactors to memory interfacebunnei1-20/+33
2014-04-18cleaned up memory interfaces a lot, removed some hackish stuffbunnei1-3/+1
2014-04-13replace tabs with spacesbunnei1-3/+3
2014-04-13added OS memory read/write for thread command bufferbunnei1-4/+0
2014-04-13- added HLE to connect to "srv:" servicebunnei1-1/+2
- added a manager for keeping track of services/ports - added a memory mapped region for memory accessed by HLE - added HLE for GetThreadCommandBuffer function
2014-04-12added a memory mapped option for HLEbunnei1-5/+8
2014-04-11added Memory::GetCharPointer to read strings from HLE functionsbunnei1-0/+4
2014-04-09fixed project includes to use new directory structurebunnei1-2/+2
2014-04-09got rid of 'src' folders in each sub-projectbunnei1-0/+0
2014-04-09fixed all license file headers in corebunnei1-30/+5
2014-04-04made memory #define's enum to make debugging easierbunnei1-15/+21
2014-04-01added support for reading/writing to stack membunnei1-2/+10
2014-03-30added ARM11 MMU from skyeyebunnei1-2/+2
2014-03-25added a GetPointer function to Memory for use with ELF loadingbunnei1-1/+4
2013-09-20added mem_map hardware writingShizZy1-0/+3
2013-09-19added hw R/W/ memory functionsShizZy1-2/+1
2013-09-19refactored some mem_map stuffShizZy1-1/+1
2013-09-14renamed project to 'citrus'ShizZy1-1/+1
2013-09-06start of 3DS memory mapShizZy1-4/+25
2013-09-06added core and mem_map files to the projectShizZy1-0/+58