bunnei
e95bb782f0
core: hle: kernel: init_slab_setup: Move CalculateSlabHeapGapSize to global namespace.
4 years ago
bunnei
5f3e77d93e
core: hle: kernel: Allocate dummy threads on host thread storage.
- Fixes a crash where on subsequent boots, long-lived host threads would have their dummy threads freed.
4 years ago
bunnei
82a2463062
core: hle: kernel: Downgrade dangling objects warning to debug.
- It is not impossible to leak kernel objects, so this is not really any issue anymore (albeit, still interesting).
4 years ago
bunnei
f7d1929816
core: hle: kernel: Make object list container global and ensure it is reset on each emulation session.
4 years ago
bunnei
51589c5e21
core: hle: kernel: Remove server session tracking.
- These are now allocated/managed by emulated memory, so we do not need to track and free them on shutdown.
4 years ago
bunnei
0defac2f2a
core: hle: kernel: k_process: Remove handle table finalize, reset page table.
4 years ago
bunnei
813b2ef253
core: hle: kernel: k_process: Implement thread local storage accurately.
4 years ago
bunnei
3210bc2767
core: hle: kernel: k_page_table: Add implementations of MapPages, UnmapPages, and FindFreeArea for TLS.
4 years ago
bunnei
15d9b0418f
core: hle: kernel: k_slab_heap: Refresh to use guest allocations.
4 years ago
bunnei
a25cd4bb4b
core: hle: kernel: Update init_slab_heap, use device memory, and add KThreadLocalPage and KPageBuffer.
- Refreshes our slab initialization code to latest known behavior.
- Moves all guest kernel slabs into emulated device memory.
- Adds KThreadLocalPage and KPageBuffer, which we will use for accurate TLS management.
4 years ago
bunnei
91819726b1
core: hle: kernel: k_page_buffer: Add KThreadLocalPage primitive.
4 years ago
bunnei
08434842b3
core: hle: kernel: k_page_buffer: Add KPageBuffer primitive.
4 years ago
bunnei
4a28d8cebb
core: hle: kernel: k_thread: Ensure host Fiber is freed.
4 years ago
bunnei
ed67e1dd10
core: hle: kernel: k_server_session: Ensure SessionRequestManager is freed.
4 years ago
bunnei
bfc4823e36
core: hle: service: kernel_helpers: Use system resource limit.
4 years ago
bunnei
8873c0c3db
core: hle: service: sm: Fix KPort reference count.
4 years ago
bunnei
25c0acc388
core: hle: kernel: k_thread: Update to reflect tree changes.
4 years ago
bunnei
07c9d9bdbd
core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and SessionRequestManager.
4 years ago
bunnei
ce33503adf
core: hle: kernel: k_memory_layout: Update kernel slab memory sizes.
4 years ago
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
Merry
220674d0d6
dynarmic: Reduce size of code caches
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
lat9nq
1f24a4e520
emu_window: Create a way to Cancel the exit of a Scoped
If a GraphicsContext is destroyed before its Scoped is destroyed, this
causes a crash as the Scoped tries to call a method in the destroyed
context on exit.
Add a way to Cancel the call when we know that calling the
GraphicsContext will not work.
4 years ago
lat9nq
381f1dd2c9
core: Don't shutdown a null GPU
When CreateGPU fails, yuzu would try and shutdown the GPU instance
regardless of whether any instance was actually created.
Check for nullptr before calling its methods to prevent a crash.
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
Narr the Reg
d44464829b
service: am: Update enum names to match documentation
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
c0e45a3c78
core: device_memory: Use memory size reported by KSystemControl.
- That way, we can consolidate the memory layout to one place.
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
Kelebek1
e1201abc1e
Dump patched exefs rather than base
4 years ago