Atmosphere/libraries/libstratosphere/include/stratosphere/ncm
Michael Scire b7ec64ea16 fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images.
Starting in 20.0.0, the browser needs more applet memory to function, so we can't steal as much any more.
Thus, we now steal 14 MB on 20.0.0+ instead of 40MB.

However, since this reduces memory available for custom system modules, we are adjusting to compensate.
ams.mitm's heap size has been reduced from 32MB to 12MB (recovering 20MB).
In addition, fs.mitm now uses a new mechanism for stealing memory from the applet pool while romfs is being built.

On net, we are compromising:
    * Custom sysmodules lose memory available to them.
        On 19.0.0/AMS 1.8.0, there was 30 MB available for custom sysmodules.
        Stealing 14 MB instead of 40 MB, we lose 26 MB of that. Reducing ams.mitm's usage will gain us back 20.
        Nintendo also appears to...use 4 extra MB, in 20.0.0, from my test homebrew.
        So on 20.0.0/AMS 1.9.0, there should be 20 MB available for custom sysmodules.
        On the bright side, on <20.0.0/AMS 1.9.0, I guess there will be 50 MB available for custom sysmodules now?
    * totk mods will lose the ability to...put every file in the romfs on sd card. There will be some unknown maximum filecount for totk mods.
        On the bright side, implementing the transient memory stealing should improve compatibility for some mods which strictly add files?
2025-05-09 11:55:21 -07:00
..
ncm_api.hpp boot2: update for 16.0.0 2023-02-22 17:19:51 -08:00
ncm_auto_buffer.hpp ams: use R_SUCCEED, R_THROW globally 2022-03-26 00:14:36 -07:00
ncm_bounded_map.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_content_id_utils.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_content_id.hpp ncm: alignment was changed for PlaceHolderId/ContentId in 16.0.0 2023-02-22 17:19:51 -08:00
ncm_content_info_data.hpp ncm: GetContentAccessibilities, GetContentInfo* 2022-10-12 09:15:16 -07:00
ncm_content_info_utils.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_content_info.hpp ncm: GetContentAccessibilities, GetContentInfo* 2022-10-12 09:15:16 -07:00
ncm_content_management_utils.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
ncm_content_manager_config.hpp ncm: first pass at ContentManagerImpl refactor (missing the IntegratedImpls, won't link) 2023-02-22 17:19:51 -08:00
ncm_content_manager_impl.hpp ncm: better detect + fix 17 brick after-the-fact 2023-10-16 02:38:30 -07:00
ncm_content_meta_database.hpp ncm: update to implement new ContentMetaDatabase function for 20.0.0 2025-05-09 11:55:21 -07:00
ncm_content_meta_extended_data.hpp ams: address some warnings when building with gcc-12 2022-06-05 22:57:08 -07:00
ncm_content_meta_id.hpp ncm: update enums, refactor comparison operators 2022-10-18 11:10:17 -07:00
ncm_content_meta_key.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_content_meta_platform.hpp ncm: update for new 17.0.0 apis 2023-10-12 08:55:58 -07:00
ncm_content_meta_type.hpp ncm: update enums, refactor comparison operators 2022-10-18 11:10:17 -07:00
ncm_content_meta_utils.hpp libstrat: make build with new ncm/fs api changes (sysmodules probably fail to build) 2023-02-22 17:19:51 -08:00
ncm_content_meta.hpp ncm: update for new 17.0.0 apis 2023-10-12 08:55:58 -07:00
ncm_content_storage.hpp ncm: update for new 17.0.0 apis 2023-10-12 08:55:58 -07:00
ncm_content_type.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_data_id.hpp ncm: update enums, refactor comparison operators 2022-10-18 11:10:17 -07:00
ncm_firmware_variation.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_i_content_manager.hpp boot2: update for 16.0.0 2023-02-22 17:19:51 -08:00
ncm_i_content_meta_database.hpp ncm: update to implement new ContentMetaDatabase function for 20.0.0 2025-05-09 11:55:21 -07:00
ncm_i_content_storage.hpp ncm: update for new 17.0.0 apis 2023-10-12 08:55:58 -07:00
ncm_ids.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_install_progress.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_install_task_base.hpp libstrat: make build with new ncm/fs api changes (sysmodules probably fail to build) 2023-02-22 17:19:51 -08:00
ncm_install_task_data.hpp ncm: hot take, uninitialized data bad 2022-03-23 09:10:50 -07:00
ncm_install_task_occupied_size.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_integrated_content_meta_database_impl.hpp ncm: update to implement new ContentMetaDatabase function for 20.0.0 2025-05-09 11:55:21 -07:00
ncm_integrated_content_storage_impl.hpp ncm: update for new 17.0.0 apis 2023-10-12 08:55:58 -07:00
ncm_integrated_list.hpp ncm: Add IntegratedContent*Impl 2023-02-22 17:19:51 -08:00
ncm_make_path.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_mapped_memory.hpp libstrat: misc fixes for unused arg warnings 2022-03-23 09:10:50 -07:00
ncm_max_count.hpp ncm: first pass at ContentManagerImpl refactor (missing the IntegratedImpls, won't link) 2023-02-22 17:19:51 -08:00
ncm_memory_report.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
ncm_package_install_task_base.hpp ncm: hot take, uninitialized data bad 2022-03-23 09:10:50 -07:00
ncm_package_install_task.hpp ncm: hot take, uninitialized data bad 2022-03-23 09:10:50 -07:00
ncm_package_system_downgrade_task.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_package_system_update_task.hpp ncm: hot take, uninitialized data bad 2022-03-23 09:10:50 -07:00
ncm_path_string.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_path.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_placeholder_id.hpp ncm: alignment was changed for PlaceHolderId/ContentId in 16.0.0 2023-02-22 17:19:51 -08:00
ncm_program_id.hpp ncm: update enums, refactor comparison operators 2022-10-18 11:10:17 -07:00
ncm_program_location.hpp ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
ncm_registered_host_content.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
ncm_rights_id_cache.hpp ncm: hot take, uninitialized data bad 2022-03-23 09:10:50 -07:00
ncm_rights_id.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_storage_id.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
ncm_storage_utils.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
ncm_submission_package_install_task.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
ncm_system_content_meta_id.hpp fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images. 2025-05-09 11:55:21 -07:00
ncm_system_update_task_apply_info.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00