aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/memory.h
AgeCommit message (Collapse)Author
2024-01-18Core: Invert guest memory depandancyFernando Sahmkow
2024-01-18Core: Clang format and other small issues.Fernando Sahmkow
2024-01-18SMMU: Add Android compatibilityFernando Sahmkow
2024-01-18SMMU: Initial adaptation to video_core.Fernando Sahmkow
2024-01-01Merge pull request #12543 from FernandoS27/stop-liking-posts-from-ur-friends-exliamwhite
VideoCore: A few fixes to DMA and swapchain
2023-12-31Vulkan: Only recreate swapchain if the frame is bigger than the swap image.Fernando Sahmkow
2023-12-31MaxwellDMA: Don't flush the outputs of a dma copy.Fernando Sahmkow
2023-12-25core: track separate heap allocation for linuxLiam
2023-12-04core: refactor emulated cpu core activationLiam
2023-11-25Address more review commentsGPUCode
2023-11-25arm: Implement native code execution backendLiam
2023-11-25core: Respect memory permissions in MapGPUCode
2023-08-09general: fix apple clang buildLiam
2023-07-22memory: minimize dependency on processLiam
2023-07-02Use spans over guest memory where possible instead of copying data.Kelebek1
2023-06-28Memory Tracking: Optimize tracking to only use atomic writes when contested ↵Fernando Sahmkow
with the host GPU
2023-03-23memory: rename global memory references to application memoryLiam
2023-03-22kernel: use KTypedAddress for addressesLiam
2022-11-12kernel: implement FlushProcessDataCacheLiam
2022-10-06MemoryManager: Fix errors popping out.Fernando Sahmkow
2022-08-19code: dodge PAGE_SIZE #defineKyle Kienapfel
Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number This is great except in yuzu we're using PAGE_SIZE as a variable Specific example `static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;` PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables. Simply deleted the underscores, and then added YUZU_ prefix Might be worth noting that there are multiple uses in different classes/namespaces This list may not be exhaustive Core::Memory 12 bits (4096) QueryCacheBase 12 bits ShaderCache 14 bits (16384) TextureCache 20 bits (1048576, or 1MB) Fixes #8779
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda
[REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-07-22Project AndioKelebek1
2022-06-16core/debugger: memory breakpoint supportLiam
2022-06-01core/debugger: Implement new GDB stub debuggerLiam
2021-08-05memory: Address lioncash's reviewyzct12345
2021-08-05memory: Clean up codeyzct12345
2021-05-20hle: kernel: Use host memory allocations for KSlabMemory.bunnei
- There are some issues with the current workaround, we will just use host memory until we have a complete kernel memory implementation.
2021-05-05hle: kernel: Rename Process to KProcess.bunnei
2021-05-05core: memory: Add a work-around to allocate and access kernel memory regions ↵bunnei
by vaddr.
2021-02-18core: memory: Add templated GetPointer methods.bunnei
2021-01-01memory: Remove MemoryHookMerryMage
2020-06-27ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
2020-04-17core: memory: Updates for new VMM.bunnei
2020-04-17core: memory: Move to Core::Memory namespace.bunnei
- helpful to disambiguate Kernel::Memory namespace.
2020-04-08Memory: Address Feedback.Fernando Sahmkow
2020-04-06Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow
2020-01-18core/memory: Create a special MapMemoryRegion for physical memory.Markus Wick
This allows us to create a fastmem arena within the memory.cpp helpers.
2019-11-26core/memory; Migrate over SetCurrentPageTable() to the Memory classLioncash
Now that literally every other API function is converted over to the Memory class, we can just move the file-local page table into the Memory implementation class, finally getting rid of global state within the memory code.
2019-11-26core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory classLioncash
The Write functions are used slightly less than the Read functions, which make these a bit nicer to move over. The only adjustments we really need to make here are to Dynarmic's exclusive monitor instance. We need to keep a reference to the currently active memory instance to perform exclusive read/write operations.
2019-11-26core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash
With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
2019-11-26core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory classLioncash
These currently aren't used anywhere in the codebase, so these are very trivial to move over to the Memory class.
2019-11-26core/memory: Migrate over RasterizerMarkRegionCached() to the Memory classLioncash
This is only used within the accelerated rasterizer in two places, so this is also a very trivial migration.
2019-11-26core/memory: Migrate over ReadCString() to the Memory classLioncash
This only had one usage spot, so this is fairly straightforward to convert over.
2019-11-26core/memory: Migrate over GetPointer()Lioncash
With all of the interfaces ready for migration, it's trivial to migrate over GetPointer().
2019-11-26core/memory: Migrate over address checking functions to the new Memory classLioncash
A fairly straightforward migration. These member functions can just be mostly moved verbatim with minor changes. We already have the necessary plumbing in places that they're used. IsKernelVirtualAddress() can remain a non-member function, since it doesn't rely on class state in any form.
2019-11-26core/memory: Migrate over memory mapping functions to the new Memory classLioncash
Migrates all of the direct mapping facilities over to the new memory class. In the process, this also obsoletes the need for memory_setup.h, so we can remove it entirely from the project.
2019-11-26core/memory: Introduce skeleton of Memory classLioncash
Currently, the main memory management code is one of the remaining places where we have global state. The next series of changes will aim to rectify this. This change simply introduces the main skeleton of the class that will contain all the necessary state.
2019-07-06memory: Remove unused PageTable forward declarationLioncash
This isn't used by anything in the header file, so it can be removed.