aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2022-03-08hle: service: ldr: Use deterministic addresses when mapping NROs.bunnei
- Instead of randomization, choose in-order addresses for where to map NROs into memory. - This results in predictable behavior when debugging and consistent behavior when reproducing issues.
2022-03-07hle: kernel: KPageTable: Improve implementations of MapCodeMemory and ↵bunnei
UnmapCodeMemory. - This makes these functions more accurate to the real HOS implementations. - Fixes memory access issues in Super Smash Bros. Ultimate that occur when un/mapping NROs.
2022-03-02Merge pull request #7956 from bunnei/improve-mem-managerbunnei
Kernel Memory Updates (Part 4): Revamp KMemoryManager & other fixes
2022-02-27hle: kernel: Re-create memory layout at initialization.bunnei
- As this can only be derived once.
2022-02-27hle: kernel: Remove unused pool locals.bunnei
2022-02-27hle: kernel: k_memory_manager: Rework for latest kernel behavior.bunnei
- Updates the KMemoryManager implementation against latest documentation. - Reworks KMemoryLayout to be accessed throughout the kernel. - Fixes an issue with pool sizes being incorrectly reported.
2022-02-27dynarmic: Inline exclusive memory accessesmerry
Inlines implementation of exclusive instructions into JITted code, improving performance of applications relying heavily on these instructions. We also fastmem these instructions for additional speed, with support for appropriate recompilation on fastmem failure. An unsafe optimization to disable the intercore global_monitor is also provided, should one wish to rely solely on cmpxchg semantics for safety. See also: merryhime/dynarmic#664
2022-02-27hle: kernel: k_page_heap: GetPhysicalAddr can be const.bunnei
2022-02-27hle: kernel: k_page_heap: Remove superfluous consexpr.bunnei
2022-02-27hle: kernel: k_page_heap: Various updates and improvements.bunnei
- KPageHeap tracks physical addresses, not virtual addresses. - Various updates and improvements to match latest documentation for this type.
2022-02-27hle: kernel: Add initial_process.h header.bunnei
2022-02-27hle: kernel: board: nx: Add k_memory_layout.h header.bunnei
2022-02-27hle: kernel: k_system_control: Add GetRealMemorySize and update ↵bunnei
GetKernelPhysicalBaseAddress.
2022-02-27hle: kernel: k_memory_layout: Add GetPhysicalLinearRegion.bunnei
2022-02-27hle: kernel: k_memory_region_types: Update for new regions.bunnei
2022-02-21hle: kernel: KSystemControl: Use 6GB memory layout when ↵bunnei
"use_extended_memory_layout" setting is enabled. - This uses a larger 6GB DRAM memory layout, which is useful for some mods that require more memory.
2022-02-21core: hle: kernel: Remove resource limit hack for PhysicalMemory.bunnei
- With prior changes, we now report the correct amount of physical memory available to the emulated process.
2022-02-21core: hle: kernel: KProcess: Pass in KResourceLimit on process creation.bunnei
- This allows us to have a resource limit per process, rather than use the global system resource limit.
2022-02-21core: hle: kernel: KEvent: Pass in owner KProcess on event creation.bunnei
- This is necessary to ensure resource limits are freed from the right process.
2022-02-21core: hle: kernel: KResourceLimit: Add a helper function for creating a ↵bunnei
KResourceLimit for a process.
2022-02-21Merge pull request #7919 from bunnei/phys-mem-updatesbunnei
core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
2022-02-19fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.bunnei
2022-02-18core: hle: kernel: KPageTable: Fix UnmapPages.bunnei
- Fixes a logic bug in KPageTable::UnmapPages.
2022-02-18core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.bunnei
- Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS.
2022-02-15kernel: svc: Add OutputDebugString32, CreateCodeMemory32, ControlCodeMemory32Sergi Granell
Very straightforward, they are just wrappers to the 64-bit version of the SVC.
2022-02-14Merge pull request #7871 from german77/svc2bunnei
svc: Set unique names for function tables
2022-02-08svc: Set unique names for function tablesNarr the Reg
2022-02-08hle: kernel: KCodeMemory: Remove unused QueryMemory.bunnei
2022-02-08hle: kernel: KCodeMemory: Correct m_page_group number of pages.bunnei
Credits to @xerpi for finding this issue and pointing it out on #7519.
2022-02-04service: pm: Implement AtmosphereGetProcessInfotech-ticks
2022-02-02Merge pull request #7835 from bunnei/page-table-lockbunnei
hle: kernel: KPageTable: Migrate locks to KScopedLightLock.
2022-02-02general: Replace NonCopyable struct with equivalentsLioncash
2022-02-02general: Move deleted copy/move constructor/assignment operators to public ↵Lioncash
interface This allows for better compiler errors, where the compiler will state a copy or move couldn't occur due to the relevant function being deleted. Previously a compiler would warn about the relevant function not being accessible (which, while true, isn't as informative as it could be).
2022-02-01hle: kernel: KPageTable: Migrate locks to KScopedLightLock.bunnei
- More accurately reflects real kernel behavior by using guest locks.
2022-01-31svc: Add 32 bit SynchronizePreemptionStateNarr the Reg
Used by Espgaluda II
2022-01-27hle: kernel: KScheduler: Fix deadlock with core waiting for a thread lock ↵bunnei
that has migrated. - Previously, it was possible for a thread migration to occur from core A to core B. - Next, core B waits on a guest lock that must be released by a thread queued for core A. - Meanwhile, core A is still waiting on the core B's current thread lock - resulting in a deadlock. - Fix this by try-locking the thread lock. - Fixes softlocks in FF8 and Pokemon Legends Arceus.
2022-01-26Merge pull request #7762 from bunnei/un-map-improvebunnei
Kernel Memory Updates (Part 4): Improve Un/MapPages, and more.
2022-01-25Merge pull request #7771 from lioncash/assertMorph
kernel/k_affinity_mask: Remove duplicated assert
2022-01-24kernel/k_affinity_mask: Remove duplicated assertLioncash
This is already checked inside GetCoreBit()
2022-01-22hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.bunnei
- Previously implementation was incorrect, and would occasionally underflow.
2022-01-22core: hle: kernel: KPageTable: Various improvements to MapPages and UnmapPages.bunnei
2022-01-22core: hle: kernel: KPageTable: MapProcessCode: Various cleanup.bunnei
2022-01-22core: hle: kernel: KPageTable: ReserveTransferMemory: Various cleanup.bunnei
2022-01-22core: hle: kernel: KPageTable: ResetTransferMemory: Various cleanup.bunnei
2022-01-22core: hle: kernel: KPageTable: SetMemoryAttribute: Various cleanup.bunnei
2022-01-22core: hle: kernel: KPageTable: Assert valid address on GetPhysicalAddr.bunnei
2022-01-22core: hle: kernel: KPageTable: Operate: Assert lock ownership.bunnei
2022-01-22core: hle: kernel: KPageTable: SetHeapSize: Cleanup & take physical memory lock.bunnei
2022-01-22core: hle: kernel: Refactor Un/MapPhysicalMemory to remove unnecessary methods.bunnei
2022-01-22core: hle: kernel: Rename Un/Map to Un/MapMeory.bunnei