summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/memory (follow)
Commit message (Collapse)AuthorAgeFilesLines
* common/bit_util: Replace CLZ/CTZ operations with standardized onesLioncash2021-01-151-2/+2
| | | | Makes for less code that we need to maintain.
* core: hle: kernel: Add some useful functions for checking kernel addresses.bunnei2021-01-111-0/+19
|
* core: Silence warnings when compiling without assertsReinUsesLisp2021-01-051-0/+2
|
* general: Fix various spelling errorsMorph2021-01-022-13/+13
|
* core/memory: Read and write page table atomicallyReinUsesLisp2020-12-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax]
* Merge pull request #5148 from comex/xx-unused-fieldsbunnei2020-12-071-2/+2
|\ | | | | core: Mark unused fields as [[maybe_unused]]
| * core: Mark unused fields as [[maybe_unused]]comex2020-12-071-2/+2
| |
* | video_core: Resolve more variable shadowing scenarios pt.3Lioncash2020-12-051-3/+3
|/ | | | | Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors.
* core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei2020-11-291-0/+5
|
* Revert "core: Fix clang build"bunnei2020-10-215-27/+20
|
* core: Fix clang buildLioncash2020-10-185-20/+27
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* Merge pull request #4492 from lioncash/linkagebunnei2020-08-152-15/+11
|\ | | | | system_control: Make functions internally linked where applicable
| * system_control: Make functions internally linked where applicableLioncash2020-08-052-15/+11
| | | | | | | | | | These functions are only ever used internally as implementation details for GenerateRandomRange(), so these can be given internal linkage.
* | General: Tidy up clang-format warnings part 2Lioncash2020-08-131-10/+12
| |
* | kernel: Remove unused variablesLioncash2020-08-051-1/+0
|/ | | | Resolves a few compiler warnings.
* Merge pull request #4327 from lioncash/desig2Rodrigo Locatti2020-07-162-58/+38
|\ | | | | address_space_info: Make use of designated initializers
| * address_space_info: Use type alias to simplify codeLioncash2020-07-131-14/+13
| | | | | | | | | | We can define an alias for the index arrays and then just reuse it to make the code nicer to read.
| * address_space_info: Make use of designated initializersLioncash2020-07-132-46/+27
| | | | | | | | | | We can alter the structure so that we can use designated initializers in the array, eliminating the comments that indicate their field names.
* | memory_layout: Remove unused data memberLioncash2020-07-131-2/+0
|/ | | | | This isn't used, so it can be removed entirely, shrinking the structure size by 8 bytes.
* memory_manager: Remove useless assertionDavid Marcec2020-06-251-1/+0
| | | | num_pages is an std::size_t. It will always be >= 0
* memory_manager: Explicitly specifcy std::min<size_t>MerryMage2020-06-181-2/+2
|
* Merge pull request #3881 from lioncash/mem-warningbunnei2020-05-0511-23/+11
|\ | | | | kernel/memory: Resolve several compiler warnings
| * kernel/memory: Remove #pragma once within cpp fileLioncash2020-05-031-2/+0
| | | | | | | | This isn't necessary in a cpp file and will cause warnings on clang.
| * kernel/memory: Remove unused includesLioncash2020-05-037-8/+1
| | | | | | | | | | Prevents header churn and needing to recompile these files if these headers are ever changed in the future.
| * kernel/memory: Remove unused variables in memory_block_managerLioncash2020-05-031-3/+0
| | | | | | | | Prevents unused variable warnings.
| * kernel/memory: Make use of std::array consistently in address_space_infoLioncash2020-05-031-6/+6
| | | | | | | | | | This allows tuning standard library implementations to enable or disable range checks at runtime, which is nicer for debugging.
| * kernel/memory: Resolve -Wshadow warningsLioncash2020-05-031-4/+4
| | | | | | | | Prevents variable name clashing.
* | kernel/memory: Amend potential encoding warningsLioncash2020-05-036-12/+12
|/ | | | | | | While èis generally representable in some language encodings, in some it isn't and will result in compilation warnings occurring. To remain friendly with other language's codepages on Windows, we normalize it to an ASCII e.
* page_table: Remove unused capturesLioncash2020-04-231-2/+2
| | | | | | Any time the lambda function is called, the permission being used in the capture would be passed in as an argument to the lambda, so the capture is unnecessary.
* kernel: memory: Improve implementation of device shared memory. (#3707)bunnei2020-04-235-3/+105
| | | | | | | * kernel: memory: Improve implementation of device shared memory. * fixup! kernel: memory: Improve implementation of device shared memory. * fixup! kernel: memory: Improve implementation of device shared memory.
* memory/slab_heap: Make use of static_cast over reinterpret_castLioncash2020-04-181-2/+2
| | | | | Casting from void* with static_cast is permitted by the standard, so we can just make use of that instead.
* core: hle: Address various feedback & code cleanup.bunnei2020-04-176-232/+135
| | | | - Should be no functional changes.
* memory: Add copyright notice for Atmosphere where applicable.bunnei2020-04-176-0/+18
|
* kernel: memory: page_table: Simplify GetPhysicalAddr impl.bunnei2020-04-172-5/+3
|
* core: system: Rename GetDeviceManager -> DeviceManager.bunnei2020-04-171-1/+1
| | | | - More consistent with other system components.
* kernel: memory: Add PageTable class, to manage process address space.bunnei2020-04-172-0/+1508
|
* kernel: memory: Add MemoryLayout class, to build physical memory layout.bunnei2020-04-171-0/+73
|
* kernel: memory: Add MemoryManager class, to manage page heaps.bunnei2020-04-172-0/+274
|
* kernel: memory: Add MemoryBlockManager class, to manage memory blocks.bunnei2020-04-172-0/+254
|
* kernel: memory: Add PageHeap class, to manage a heap of pages.bunnei2020-04-172-0/+481
|
* kernel: memory: Add PageLinkedList class, to manage a list of pages.bunnei2020-04-171-0/+93
|
* kernel: memory: Add system_control code, which will be used for ASLR support.bunnei2020-04-172-0/+59
|
* kernel: memory: Add MemoryBlock class, for managing memory blocks and their state.bunnei2020-04-171-0/+315
|
* kernel: memory: Add memory_types.h, for things that are commonly used in memory code.bunnei2020-04-171-0/+18
|
* kernel: memory: Add SlabHeap class, for managing memory heaps.bunnei2020-04-171-0/+161
| | | | - This will be used for TLS pages, among other things.
* kernel: memory: Add AddressSpaceInfo class, for managing the memory address space.bunnei2020-04-172-0/+164