Atmosphere/libraries/libstratosphere/include/stratosphere
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
..
ams fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images. 2025-05-09 11:55:21 -07:00
boot2 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
cal 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
capsrv ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
cfg ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
clkrst 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
cs 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
dd ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
ddsf ams: various fixes to support booting debug configuration 2025-04-08 13:43:29 -07:00
diag abort/error: print backtrace, abuse templates, overhaul result/diag (macos not done yet) 2022-03-21 17:21:44 -07:00
dmnt loader: refactor ro manager/improve accuracy 2021-10-10 18:22:32 -07:00
erpt erpt: initial support (incomplete) for 20.0.0 2025-05-09 11:55:21 -07:00
err 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
fat erpt: SubmitFileSystemProxyErrorInfo 2023-10-25 14:21:27 -07:00
fatal sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
fs strat: update for fsp-ldr 20.0.0 changes 2025-05-09 11:55:21 -07:00
fssrv strat: update for fsp-ldr 20.0.0 changes 2025-05-09 11:55:21 -07:00
fssystem strat: ldr::PlatformId -> ncm::ContentMetaPlatform 2024-10-29 19:24:52 -07:00
gc erpt: add remaining SubmitFsInfo helpers 2023-10-25 16:08:12 -07:00
gpio sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
hid 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
hos ams: add enum support for 20.0.1/18.0.1 2025-05-09 11:55:21 -07:00
htc sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
htcfs 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
htclow 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
htcs 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
i2c ams: use R_SUCCEED, R_THROW globally 2022-03-26 00:14:36 -07:00
init strat: use ams::Main() instead of main(argc, argv) 2021-10-07 17:44:54 -07:00
kvdb ncm: first pass at ContentManagerImpl refactor (missing the IntegratedImpls, won't link) 2023-02-22 17:19:51 -08:00
ldr ldr/pm: update for 20.0.0 abi changes 2025-05-09 11:55:21 -07:00
lm 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
lmem constexpr: resign ourselves to gcc dropping void -> T support 2021-10-17 02:39:16 -07:00
lr lr: new AOC commands use MapAlias for paths... 2022-10-12 09:15:16 -07:00
mem ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
mitm romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122) 2023-05-14 03:06:52 -07:00
ncm fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images. 2025-05-09 11:55:21 -07:00
nim 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
ns/impl sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
nsd 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
os os: add UnsafeMemory apis 2023-03-01 03:20:49 -07:00
osdbg ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
patcher 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
pcv 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
pgl ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
pinmux 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
pm pm: add new 19.0.0 commands 2024-10-15 21:48:59 -07:00
powctl ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
psc sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
pwm strat: update for code changes found in boot (closes #1797) 2022-05-05 17:45:55 -07:00
rapidjson rapidjson: import -master as ams::rapidjson 2021-02-24 04:06:54 -08:00
regulator 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
ro ro: support NROs with read-only first page 2024-10-15 21:48:59 -07:00
rocrt ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
scs ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
settings settings: support PortugueseBr (closes #2264) 2024-01-08 12:20:53 -07:00
sf libstrat: fix more gnu++23 errors 2024-06-05 11:28:29 -07:00
sm ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
socket strat: add windows socket api, linux/macos TODO 2022-03-27 14:36:31 -07:00
spl spl: add support for new spl:es command 33 2024-03-29 02:41:14 -07:00
sprofile 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
svc kern/svc: update WaitForAddress to support 64-bit WaitIfEqual 2024-10-15 21:48:59 -07:00
time Minor header fixes to reduce parsing issues with Clang (#1700) 2021-11-06 18:19:34 -07:00
tipc ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
tma sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
updater 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
usb sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
util util: LockFreeAtomicType (for time) 2022-03-27 20:15:10 -07:00
vi 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
wec ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
ams.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
boot2.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
cal.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
capsrv.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
cfg.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
clkrst.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
cs.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
dd.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
ddsf.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
diag.hpp abort/error: print backtrace, abuse templates, overhaul result/diag (macos not done yet) 2022-03-21 17:21:44 -07:00
dmnt.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
erpt.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
err.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
fat.hpp erpt: GetMmcErrorInfo, GetSdCard*Info 2023-10-25 12:41:18 -07:00
fatal.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
fs.hpp erpt: GetMmcErrorInfo, GetSdCard*Info 2023-10-25 12:41:18 -07:00
fssrv.hpp fssrv: add ExternalKeyManager (rights-id crypto) for hac2l 2022-03-21 17:21:44 -07:00
fssystem.hpp fs: update nca drivers (and dependents/callees) for 14.0.0 changes 2022-03-25 09:48:24 -07:00
gc.hpp erpt: add remaining SubmitFsInfo helpers 2023-10-25 16:08:12 -07:00
gpio.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
hid.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
hos.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
htc.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
htcfs.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
htclow.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
htcs.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
i2c.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
init.hpp strat: use ams::Main() instead of main(argc, argv) 2021-10-07 17:44:54 -07:00
kvdb.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
ldr.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
lm.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
lmem.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
lr.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
mem.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
mitm.hpp romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122) 2023-05-14 03:06:52 -07:00
ncm.hpp ncm: update for new add on content/attr changes 2022-10-12 09:15:16 -07:00
nim.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
ns.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
nsd.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
os.hpp os: add UnsafeMemory apis 2023-03-01 03:20:49 -07:00
osdbg.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
patcher.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
pcv.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
pgl.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
pinmux.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
pm.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
powctl.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
psc.hpp sf: add new debug-interface-id in cmif out header 2022-03-23 09:10:50 -07:00
pwm.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
rapidjson.hpp ams: replace most remaining operator & with std::addressof 2021-10-09 14:49:53 -07:00
regulator.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
ro.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
scs.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
settings.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
sf.hpp sf: add NativeHandle type 2021-10-04 17:34:16 -07:00
sm.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
socket.hpp ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00
spl.hpp spl: refactor for accuracy/move into libstrat 2021-10-10 12:57:36 -07:00
sprofile.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
time.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
tipc.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
tma.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
updater.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
usb.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
util.hpp util: LockFreeAtomicType (for time) 2022-03-27 20:15:10 -07:00
vi.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
wec.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
windows.hpp ams: support building unit test programs on windows/linux/macos 2022-03-21 17:21:44 -07:00