bunnei
0f0e1c25bc
core: hle: kernel: svc_types: Add ThreadLocalRegionSize.
4 years ago
bunnei
944d9186ca
core: hle: kernel: k_condition_variable: Update to reflect tree changes.
4 years ago
bunnei
158c5845ab
core: hle: kernel: k_address_arbiter: Update to reflect tree changes.
4 years ago
bunnei
853e58e593
hle: service: ldr: Use deterministic addresses when mapping NROs.
- 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.
4 years ago
bunnei
749f76e6fe
hle: kernel: KPageTable: Improve implementations of MapCodeMemory and 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.
4 years ago
bunnei
14d28a043d
hle: kernel: Re-create memory layout at initialization.
- As this can only be derived once.
4 years ago
bunnei
16e5954fcb
hle: kernel: Remove unused pool locals.
4 years ago
bunnei
f87f076162
hle: kernel: k_memory_manager: Rework for latest kernel behavior.
- Updates the KMemoryManager implementation against latest documentation.
- Reworks KMemoryLayout to be accessed throughout the kernel.
- Fixes an issue with pool sizes being incorrectly reported.
4 years ago
merry
16784e5bb3
dynarmic: Inline exclusive memory accesses
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
4 years ago
bunnei
adbb9c2b00
hle: kernel: k_page_heap: GetPhysicalAddr can be const.
4 years ago
bunnei
f7e65eb971
hle: kernel: k_page_heap: Remove superfluous consexpr.
4 years ago
bunnei
06e2b76c75
hle: kernel: k_page_heap: Various updates and improvements.
- KPageHeap tracks physical addresses, not virtual addresses.
- Various updates and improvements to match latest documentation for this type.
4 years ago
bunnei
5d1a81520c
hle: kernel: Add initial_process.h header.
4 years ago
bunnei
a6496deeed
hle: kernel: board: nx: Add k_memory_layout.h header.
4 years ago
bunnei
9b5e7971dc
hle: kernel: k_system_control: Add GetRealMemorySize and update GetKernelPhysicalBaseAddress.
4 years ago
bunnei
18e77a54c3
hle: kernel: k_memory_layout: Add GetPhysicalLinearRegion.
4 years ago
bunnei
06a21ac229
hle: kernel: k_memory_region_types: Update for new regions.
4 years ago
bunnei
71f62a346d
hle: kernel: KSystemControl: Use 6GB memory layout when "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.
4 years ago
bunnei
ca5e843bf6
core: hle: kernel: Remove resource limit hack for PhysicalMemory.
- With prior changes, we now report the correct amount of physical memory available to the emulated process.
4 years ago
bunnei
a74fddc98f
core: hle: kernel: KProcess: Pass in KResourceLimit on process creation.
- This allows us to have a resource limit per process, rather than use the global system resource limit.
4 years ago
bunnei
57ebcbf2c4
core: hle: kernel: KEvent: Pass in owner KProcess on event creation.
- This is necessary to ensure resource limits are freed from the right process.
4 years ago
bunnei
c7019db6f4
core: hle: kernel: KResourceLimit: Add a helper function for creating a KResourceLimit for a process.
4 years ago
bunnei
92b2e92620
fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
4 years ago
bunnei
c9260a75f6
core: hle: kernel: KPageTable: Fix UnmapPages.
- Fixes a logic bug in KPageTable::UnmapPages.
4 years ago
bunnei
1a16d055df
core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
- Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS.
4 years ago
Sergi Granell
c3242abe95
kernel: svc: Add OutputDebugString32, CreateCodeMemory32, ControlCodeMemory32
Very straightforward, they are just wrappers to the 64-bit version of
the SVC.
4 years ago
Narr the Reg
d0c7c3f64f
svc: Set unique names for function tables
4 years ago
bunnei
862dddf8c9
hle: kernel: KCodeMemory: Remove unused QueryMemory.
4 years ago
bunnei
d134ca68c6
hle: kernel: KCodeMemory: Correct m_page_group number of pages.
Credits to @xerpi for finding this issue and pointing it out on #7519 .
4 years ago
tech-ticks
16bf50e610
service: pm: Implement AtmosphereGetProcessInfo
4 years ago
Lioncash
f785f73e92
general: Replace NonCopyable struct with equivalents
4 years ago
Lioncash
76d83ffbec
general: Move deleted copy/move constructor/assignment operators to public 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).
4 years ago
bunnei
995e27e9b7
hle: kernel: KPageTable: Migrate locks to KScopedLightLock.
- More accurately reflects real kernel behavior by using guest locks.
4 years ago
Narr the Reg
1ed22b4613
svc: Add 32 bit SynchronizePreemptionState
Used by Espgaluda II
4 years ago
bunnei
3a1a3dd0db
hle: kernel: KScheduler: Fix deadlock with core waiting for a thread lock 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.
4 years ago
Lioncash
2f12caccf9
kernel/k_affinity_mask: Remove duplicated assert
This is already checked inside GetCoreBit()
4 years ago
bunnei
59add00d4a
hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.
- Previously implementation was incorrect, and would occasionally underflow.
4 years ago
bunnei
e791da9791
core: hle: kernel: KPageTable: Various improvements to MapPages and UnmapPages.
4 years ago
bunnei
07add23251
core: hle: kernel: KPageTable: MapProcessCode: Various cleanup.
4 years ago
bunnei
ee25e0a40b
core: hle: kernel: KPageTable: ReserveTransferMemory: Various cleanup.
4 years ago
bunnei
0cee5e1af8
core: hle: kernel: KPageTable: ResetTransferMemory: Various cleanup.
4 years ago
bunnei
ffcaf5af90
core: hle: kernel: KPageTable: SetMemoryAttribute: Various cleanup.
4 years ago
bunnei
2935c9d8de
core: hle: kernel: KPageTable: Assert valid address on GetPhysicalAddr.
4 years ago
bunnei
264bb5abf7
core: hle: kernel: KPageTable: Operate: Assert lock ownership.
4 years ago
bunnei
0137f2e6e1
core: hle: kernel: KPageTable: SetHeapSize: Cleanup & take physical memory lock.
4 years ago
bunnei
6d8e498f76
core: hle: kernel: Refactor Un/MapPhysicalMemory to remove unnecessary methods.
4 years ago
bunnei
b8b1b58f36
core: hle: kernel: Rename Un/Map to Un/MapMeory.
4 years ago
bunnei
615fb40416
hle: kernel: KThread: Ensure host (dummy) threads block on locking.
- But do not enter the priority queue, as otherwise they will be scheduled.
- Allows dummy threads to use guest synchronization primitives.
4 years ago
bunnei
f6815086a1
hle: kernel: Remove redundant tracking of dummy threads.
- These are already tracked by kernel's registered_objects member.
4 years ago
bunnei
91ff6d4cb3
hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.
4 years ago