Commit Graph

91 Commits

Author SHA1 Message Date
Michael Scire
20ae7f3037 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 12:10:10 -07:00
Michael Scire
b70e367745 kern/ldr: add support for --x executables 2024-10-15 21:51:39 -07:00
Michael Scire
60e3c8a4cc kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize 2024-03-29 02:55:02 -07:00
Michael Scire
43b8461b5f kern/svc: fix query/insecure names 2023-11-16 16:25:26 -07:00
Michael Scire
51e932c88f os: add UnsafeMemory apis 2023-03-13 17:17:04 -07:00
Michael Scire
d408819335 os: update os namespace for 15.0.0, loader/ro: update to use csrng, spl: bump max sessions 2022-10-12 09:15:47 -07:00
Michael Scire
5e73321aec os: pthread_yield is deprecated, don't use it on linux 2022-10-12 09:15:41 -07:00
Michael Scire
d421817c86 os: silence warning building with gcc 12 on windows 2022-10-12 09:15:41 -07:00
Michael Scire
83aaf4904b os: fix whoops in SetMemoryPermission on windows 2022-10-12 09:15:40 -07:00
Michael Scire
019a7600c7 os: implement MemoryHeapManager, SetMemoryAttribute 2022-10-12 09:15:40 -07:00
Michael Scire
01848bf7ac os: fix various regressions since 1.3.1 2022-04-29 16:14:23 -07:00
Michael Scire
ee0cb14b97 os: fix minor bug (and simplify) MapProcessCodeMemory 2022-04-29 16:14:22 -07:00
Michael Scire
2702120d79 ro/os: use os primitives for MapProcessCodeMemory 2022-04-29 16:14:22 -07:00
Michael Scire
aecf739a7c loader: use os apis for interacting with process memory 2022-04-29 16:14:21 -07:00
Michael Scire
738f57cd37 os: refactor multi wait apis to better match Nintendo's latest implementation 2022-04-29 16:14:18 -07:00
Michael Scire
6a5d2ced4b ams: globally prefer R_RETURN to return for ams::Result 2022-04-04 17:46:58 -07:00
Michael Scire
6f4618ea60 ams: use R_SUCCEED, R_THROW globally 2022-04-04 17:46:57 -07:00
Michael Scire
0f8ae6e04b fs: for my sanity, begin tracking version where code was last checked for accuracy 2022-04-04 17:46:53 -07:00
Michael Scire
d97cdde1aa os/dd: add missing semicolon to new cache logic 2022-03-23 09:16:08 -07:00
Michael Scire
d066ac3d69 kern: update for new hw maintenance semantics 2022-03-23 09:16:06 -07:00
Michael Scire
a3b74aece9 kern: add InfoType_IsSvcPermitted 2022-03-23 09:16:04 -07:00
Michael Scire
b8be94ed7e strat: only include windows.h in translation units where actually needed 2022-03-23 09:15:56 -07:00
Michael Scire
5febe40d50 fs: fix clang-build, os: StackGuardManager 2022-03-23 09:15:52 -07:00
Michael Scire
0cefca205f os: add working stack logic for macOS 2022-03-23 09:15:50 -07:00
Michael Scire
d5b858f5ba fix stack getting on linux, add test 2022-03-23 09:15:50 -07:00
Michael Scire
1f2822fafe abort/error: print backtrace, abuse templates, overhaul result/diag (macos not done yet) 2022-03-23 09:15:49 -07:00
Michael Scire
5131256383 add basic tests for os::Event/SystemEvent functionality 2022-03-23 09:15:47 -07:00
Michael Scire
d7a9c7ec4c ams: support building unit test programs on windows/linux/macos 2022-03-23 09:15:46 -07:00
Michael Scire
54783b86f1 dmnt2: detect thread name, add monitor get mapping(s), increase buffer sizes 2021-11-03 23:59:55 -07:00
SciresM
823c0df6b9 kern: avoid constexpr init for many objects (avoids unnecessary memory clear) (#1668) 2021-10-26 01:11:13 -07:00
Michael Scire
960c5c19f9 ams: improve offsetof style consistency 2021-10-26 01:11:10 -07:00
Michael Scire
21cb300537 constexpr: resign ourselves to gcc dropping void -> T support 2021-10-26 01:11:10 -07:00
Michael Scire
11e9dcfe11 os: add FlushDataCache 2021-10-15 23:54:36 -07:00
Michael Scire
3e33fb6361 strat: use m_ for member variables 2021-10-15 23:54:35 -07:00
Michael Scire
3b5f56ab9f ams: replace most remaining operator & with std::addressof 2021-10-15 23:54:34 -07:00
Michael Scire
0a4c2759a1 os: fix mutex push/pop prototypes 2021-10-07 23:38:32 -07:00
Michael Scire
843dc8e521 libstrat: fix compilation without pre-compiled header/without lto 2021-10-07 23:06:28 -07:00
Michael Scire
fd1b6d4578 libstrat: enable -Wextra, -Werror
This caught an embarrassingly large number of bugs.
2021-10-07 23:06:28 -07:00
Michael Scire
390ce66da1 svc: refactor/rename MemoryInfo fields 2021-10-07 23:06:28 -07:00
Michael Scire
5a71876ca8 strat: use svc:: over ::svc 2021-10-07 23:06:26 -07:00
Michael Scire
002422d5dc ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-07 23:06:25 -07:00
Michael Scire
304b0f8016 os: remove ManagedHandle, refactor to use NativeHandle typename 2021-10-07 23:06:25 -07:00
Michael Scire
28756234d9 strat: automatic program id detection 2021-10-07 23:06:25 -07:00
Michael Scire
828506218f os: adopt nintendo ReaderWriter naming over ReadWrite 2021-10-07 23:06:24 -07:00
Michael Scire
cc4133c1b7 os: improve thread name codegen 2021-10-07 23:06:24 -07:00
Michael Scire
d1c6b77f13 os: implement SharedMemory, update AslrSpaceManager 2021-10-07 23:06:23 -07:00
Michael Scire
6125281acd os: adopt multiwait naming over waitable 2021-10-07 23:06:23 -07:00
Michael Scire
71b389c9e4 os: add tentative IoRegionType 2021-10-07 23:06:22 -07:00
Michael Scire
7665721e03 ams-libs: AMS_ASSERT no longer invokes expression 2021-10-07 23:06:21 -07:00
Michael Scire
47bbff43c5 os: add unit tests for ExpandUnsignedValueToAscii 2021-10-07 23:06:20 -07:00