eden-miror/src/core/hle/kernel
Zephyron 528c09ae72 kernel: Implement SystemResourceSize info type for VAMM initialization
Adds support for InfoType::SystemResourceSize (0x1C) which is required for
proper initialization of the Virtual Address Memory Manager (VAMM). This
implementation:

1. Adds SystemResourceSize to the InfoType enum in svc_types.h
2. Implements the GetInfo handler for SystemResourceSize in svc_info.cpp
3. Returns 512MB (0x20000000 bytes) as the system resource size
4. Adds debug logging for the SVC call

The 512MB value is chosen based on typical system resource allocations
needed for VAMM initialization on the Nintendo Switch.

This fixes crashes in games that rely on VAMM functionality, particularly
during nn::os::detail::VammManager::InitializeIfEnabled().
2025-04-04 03:40:49 +02:00
..
arch/arm64
board/nintendo/nx kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
init kernel: reshuffle ini1 size, add slab clear note 2023-10-20 02:34:15 -04:00
svc kernel: Implement SystemResourceSize info type for VAMM initialization 2025-04-04 03:40:49 +02:00
code_set.cpp
code_set.h core: Define HAS_NCE macro 2023-11-25 00:47:36 -05:00
global_scheduler_context.cpp kernel: convert GlobalSchedulerContext, KAddressArbiter, KScopedSchedulerLockAndSleep, KThreadQueue to new style 2023-03-12 22:06:53 -04:00
global_scheduler_context.h kernel: remove gratitutous attribute usage 2023-03-12 22:09:09 -04:00
initial_process.h kernel: reshuffle ini1 size, add slab clear note 2023-10-20 02:34:15 -04:00
k_address_arbiter.cpp kernel: instantiate memory separately for each guest process 2023-12-22 21:52:49 -05:00
k_address_arbiter.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_address_space_info.cpp core: Define HAS_NCE macro 2023-11-25 00:47:36 -05:00
k_address_space_info.h general: fix type inconsistencies 2023-03-07 20:05:19 -05:00
k_affinity_mask.h kernel: convert KPort, KSession 2023-03-12 22:06:53 -04:00
k_auto_object.cpp Fixes and workarounds to make UBSan happier on macOS 2023-07-15 12:00:28 -07:00
k_auto_object.h Fixes and workarounds to make UBSan happier on macOS 2023-07-15 12:00:28 -07:00
k_auto_object_container.cpp kernel: use simple mutex for object list container 2023-12-23 16:26:07 -05:00
k_auto_object_container.h kernel: use simple mutex for object list container 2023-12-23 16:26:07 -05:00
k_capabilities.cpp k_capabilities: simplify KTrace map skip logic 2023-12-28 01:22:57 -05:00
k_capabilities.h kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
k_class_token.cpp
k_class_token.h
k_client_port.cpp kernel: fix resource limit imbalance 2023-12-22 21:52:49 -05:00
k_client_port.h kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_client_session.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
k_client_session.h kernel: implement remaining IPC syscalls 2023-12-06 17:33:00 -05:00
k_code_memory.cpp k_process: PageTable -> GetPageTable 2023-07-14 21:43:15 -04:00
k_code_memory.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_condition_variable.cpp kernel: instantiate memory separately for each guest process 2023-12-22 21:52:49 -05:00
k_condition_variable.h kernel: update KProcess 2023-10-21 20:03:41 -04:00
k_debug.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_device_address_space.cpp kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
k_device_address_space.h kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
k_dynamic_page_manager.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_dynamic_resource_manager.h
k_dynamic_slab_heap.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_event.cpp kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_event.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_event_info.h kernel: remove general boost lists 2023-04-29 22:11:32 -04:00
k_handle_table.cpp
k_handle_table.h kernel: remove unecessary process member from handle table 2023-12-24 19:23:03 -05:00
k_hardware_timer.cpp core_timing: use static typing for no-wait unschedule 2023-12-23 15:36:46 -05:00
k_hardware_timer.h kernel: remove relative task registration 2023-08-14 18:12:06 -04:00
k_hardware_timer_base.h
k_interrupt_manager.cpp kernel: update KProcess 2023-10-21 20:03:41 -04:00
k_interrupt_manager.h
k_light_client_session.cpp kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_light_client_session.h kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_light_condition_variable.cpp kernel: convert KConditionVariable, KLightConditionVariable, KLightLock 2023-03-12 22:06:53 -04:00
k_light_condition_variable.h kernel: convert KConditionVariable, KLightConditionVariable, KLightLock 2023-03-12 22:06:53 -04:00
k_light_lock.cpp kernel: convert KConditionVariable, KLightConditionVariable, KLightLock 2023-03-12 22:06:53 -04:00
k_light_lock.h kernel: convert KConditionVariable, KLightConditionVariable, KLightLock 2023-03-12 22:06:53 -04:00
k_light_server_session.cpp kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_light_server_session.h kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_light_session.cpp kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_light_session.h kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_memory_block.h Fix typos in src/core (#12625) 2024-01-08 13:31:48 -06:00
k_memory_block_manager.cpp kernel: optimize page free on shutdown 2024-01-12 19:19:07 -05:00
k_memory_block_manager.h kernel: optimize page free on shutdown 2024-01-12 19:19:07 -05:00
k_memory_layout.cpp ci: fix new codespell errors 2023-10-02 18:03:05 -04:00
k_memory_layout.h kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
k_memory_manager.cpp common: use memory holepunching when clearing memory 2023-12-14 23:44:33 -05:00
k_memory_manager.h kernel: update KProcess 2023-10-21 20:03:41 -04:00
k_memory_region.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_memory_region_type.h kernel: update KMemoryRegionType values 2023-10-20 02:34:15 -04:00
k_object_name.cpp kernel: add KObjectName 2023-02-17 09:16:05 -05:00
k_object_name.h kernel: remove general boost lists 2023-04-29 22:11:32 -04:00
k_page_bitmap.h
k_page_buffer.cpp kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_page_buffer.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_page_group.cpp
k_page_group.h k_page_table: add MapFirstGroup 2023-10-20 02:34:15 -04:00
k_page_heap.cpp kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_page_heap.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_page_table.h kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
k_page_table_base.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
k_page_table_base.h kernel: fix page leak on process termination 2024-01-12 18:31:33 -05:00
k_page_table_manager.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_page_table_slab_heap.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_port.cpp kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_port.h kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_priority_queue.h kernel: convert KMemoryLayout, KMemoryRegion*, KPageTableSlabHeap, KPriorityQueue 2023-03-12 22:06:53 -04:00
k_process.cpp "Merge Tagged PR 13018" 2024-03-03 13:02:50 +00:00
k_process.h Core: Make sure GPU Dirty Managers ae shared by all processes. 2024-01-18 21:12:30 -05:00
k_process_page_table.h core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
k_readable_event.cpp kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_readable_event.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_resource_limit.cpp kernel: remove relative task registration 2023-08-14 18:12:06 -04:00
k_resource_limit.h kernel: remove relative task registration 2023-08-14 18:12:06 -04:00
k_scheduler.cpp core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
k_scheduler.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_scheduler_lock.h kernel: convert KAbstractSchedulerLock 2023-03-12 22:06:53 -04:00
k_scoped_lock.h kernel: conver KScopedLock, KScopedResourceReservation, KSessionRequest, KSharedMemory, KSpinLock 2023-03-12 22:06:53 -04:00
k_scoped_resource_reservation.h kernel: conver KScopedLock, KScopedResourceReservation, KSessionRequest, KSharedMemory, KSpinLock 2023-03-12 22:06:53 -04:00
k_scoped_scheduler_lock_and_sleep.h kernel: remove relative task registration 2023-08-14 18:12:06 -04:00
k_server_port.cpp kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_server_port.h kernel: implement light IPC 2023-12-07 09:13:43 -05:00
k_server_session.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
k_server_session.h k_server_session: process for guest servers 2023-12-22 21:52:49 -05:00
k_session.cpp general: properly support multiple memory instances 2023-12-22 21:52:49 -05:00
k_session.h kernel: implement remaining IPC syscalls 2023-12-06 17:33:00 -05:00
k_session_request.cpp kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_session_request.h kernel: remove general boost lists 2023-04-29 22:11:32 -04:00
k_shared_memory.cpp k_process: PageTable -> GetPageTable 2023-07-14 21:43:15 -04:00
k_shared_memory.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_shared_memory_info.h kernel: remove general boost lists 2023-04-29 22:11:32 -04:00
k_slab_heap.h kernel: prefer std::addressof 2023-03-12 22:09:09 -04:00
k_spin_lock.cpp kernel: conver KScopedLock, KScopedResourceReservation, KSessionRequest, KSharedMemory, KSpinLock 2023-03-12 22:06:53 -04:00
k_spin_lock.h kernel: conver KScopedLock, KScopedResourceReservation, KSessionRequest, KSharedMemory, KSpinLock 2023-03-12 22:06:53 -04:00
k_synchronization_object.cpp Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
k_synchronization_object.h kernel: convert miscellaneous 2023-03-12 22:06:53 -04:00
k_system_control.h
k_system_resource.cpp kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
k_system_resource.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_thread.cpp kernel: clear pinned waiter list on unpin 2024-01-27 22:53:49 -05:00
k_thread.h kernel: add and enable system suspend type 2024-02-14 17:03:50 -05:00
k_thread_local_page.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
k_thread_local_page.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_thread_queue.cpp kernel: convert GlobalSchedulerContext, KAddressArbiter, KScopedSchedulerLockAndSleep, KThreadQueue to new style 2023-03-12 22:06:53 -04:00
k_thread_queue.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_timer_task.h
k_trace.h
k_transfer_memory.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
k_transfer_memory.h kernel: use simple mutex for object list container 2023-12-23 16:26:07 -05:00
k_typed_address.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
k_worker_task.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_worker_task_manager.cpp kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
k_worker_task_manager.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
kernel.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
kernel.h kernel: add and enable system suspend type 2024-02-14 17:03:50 -05:00
memory_types.h kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
message_buffer.h k_server_session: process for guest servers 2023-12-22 21:52:49 -05:00
physical_core.cpp kernel: fix single core 2023-12-08 20:31:18 -05:00
physical_core.h core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
physical_memory.h
slab_helpers.h kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
svc.cpp core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
svc.h core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
svc_common.h
svc_generator.py core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
svc_results.h k_server_session: process for guest servers 2023-12-22 21:52:49 -05:00
svc_types.h kernel: Implement SystemResourceSize info type for VAMM initialization 2025-04-04 03:40:49 +02:00
svc_version.h kernel: avoid usage of bit_cast 2023-02-10 09:13:58 -05:00