Michael Scire
b758e3fc55
strat: update for latest libnx.
2019-12-07 12:41:28 -08:00
Michael Scire
ea3ebbaa7d
strat: TitleId -> ProgramId, titles->contents
2019-12-07 12:41:28 -08:00
Michael Scire
d7a06057eb
strat: split out common functionality for future meso use
2019-12-07 12:41:28 -08:00
Michael Scire
8cb77ac136
namespace sts -> namespace ams
...
namespace sts::ams -> ams::exosphere, ams::.
This is to facilitate future use of ams:: namespace code in
mesosphere, as we'll want to include ams::util, ams::result, ams::svc...
2019-12-07 12:41:28 -08:00
Michael Scire
4059dc6187
Results: Implement namespaced, type-safe results.
...
Because I was working on multiple things at once, this commit also:
- Adds wrappers for/linker flags to wrap CXX exceptions to make them
abort. This saves ~0x8000 of memory in every system module.
- Broadly replaces lines of the pattern if (cond) { return ResultX; }
with R_UNLESS(!cond, ResultX());.
- Reworks the R_TRY_CATCH macros (and the result macros in general).
2019-12-07 12:41:28 -08:00
Michael Scire
0b22af1206
libstrat: namespace remaining non-namespaced code. more new-ipc updates
2019-12-07 12:41:28 -08:00
Michael Scire
6abd756e0c
boot2: move to separate process
2019-12-07 12:41:28 -08:00
Michael Scire
535e49a38d
strat: statically allocate additional threads
2019-12-07 12:41:28 -08:00
Michael Scire
fbb5730369
strat: update for latest libnx commit
2019-12-07 12:41:28 -08:00
Michael Scire
2cb8aadafc
pm: statically allocate more resources to save memory
2019-12-07 12:41:28 -08:00
Michael Scire
aa0826bb70
pm: update for new-ipc
2019-12-07 12:41:28 -08:00
Michael Scire
add18d868f
sts: add STS_UNREACHABLE_DEFAULT_CASE()
2019-12-07 12:41:28 -08:00
Michael Scire
609a302e16
os: implement waitable management.
...
This implements waitable management for Events (and
implements Events). It also refactors PM to use new
Event/Waitable semantics, and also adds STS_ASSERT
as a macro for asserting a boolean expression. The
rest of stratosphere has been refactored to use
STS_ASSERT whenever possible.
2019-12-07 12:41:28 -08:00
Michael Scire
bb223eb5ae
libstrat: namespace hossynch.hpp
2019-12-07 12:41:28 -08:00
Michael Scire
93d83c5bb9
ams: initial support for 9.0.0
2019-09-14 10:43:39 -07:00
hexkyz
7e169bc7df
pm: work around HOS bug
2019-07-23 19:38:14 +01:00
Michael Scire
fc7f06dc78
pm/sm: add ability to forward declare mitm'd services ( closes #557 )
2019-07-11 22:24:59 -07:00
Michael Scire
6777dd9b38
pm: inform sm of title ids. remove inconsistent mitm association.
2019-07-11 22:24:59 -07:00
Michael Scire
4db212ea7b
pm: actually use the flag detection code in libstratosphere
2019-07-11 22:24:59 -07:00
Michael Scire
8177a27db9
pm: fix boot2 launch logic error
2019-07-11 22:24:59 -07:00
Michael Scire
27ff119ba6
pm: fix minor resource manager bugs
2019-07-11 22:24:59 -07:00
Michael Scire
c20774ff5d
pm: fix missing flag clears
2019-07-11 22:24:59 -07:00
Michael Scire
a9f5b7728b
pm: address review comments.
2019-07-11 22:24:59 -07:00
Michael Scire
08ad48fbf3
pm: implement correct application thread boosting mechanism
2019-07-11 22:24:59 -07:00
Michael Scire
2d0c881ffe
strat: go all in on ncm::TitleId
2019-07-11 22:24:59 -07:00
Michael Scire
c916a7db88
strat: remove sizeof() / sizeof([0])
2019-07-11 22:24:59 -07:00
Michael Scire
a5da286351
fix dumb mistake
2019-07-11 22:24:59 -07:00
Michael Scire
20a48c3a26
pm: complete rewrite
2019-07-11 22:24:59 -07:00
hexkyz
e561919a52
Fix logic in ldr_ro_manager
...
Fix argument type for isdigit/isxdigit
2019-06-30 18:48:16 +01:00
Michael Scire
18ca8aaf5b
stratosphere: all in on enum class CommandId
2019-06-27 23:34:53 -07:00
Michael Scire
61fcf5e0f4
loader: completely rewrite.
2019-06-26 15:46:19 -07:00
Michael Scire
9217e4c5f9
sm: add HasService/HasMitm, refactor into sts::
2019-06-24 17:57:49 -07:00
Michael Scire
1671c04e24
stratosphere: prefer static waitable managers
2019-06-20 13:15:39 -07:00
Michael Scire
cead8a36ea
stratosphere: more result cleanup
2019-06-20 02:00:59 -07:00
Michael Scire
ee40dcd76f
PM: Refactor for R_TRY, remove gotos
2019-06-17 15:27:29 -07:00
Michael Scire
d6502c174a
pm: actually implement GetBootFinishedEvent
2019-05-27 21:52:28 -07:00
Michael Scire
6f25e92892
set.mitm: language emulation ( closes #489 )
2019-05-22 12:13:10 -07:00
Michael Scire
03a425a579
stratosphere: TODO: panic -> std::abort()
2019-05-10 03:28:18 -07:00
Michael Scire
41f5b39f6b
stratosphere: stop using kernelAbove
2019-05-10 03:25:07 -07:00
Michael Scire
b5dd621250
pm: fix memory usage on 5.0
2019-05-10 03:24:50 -07:00
Michael Scire
30485f1df9
pm: fix dangling ->
2019-04-22 13:10:29 -07:00
Michael Scire
7945a921ca
Merge branch 'ro_dev'
2019-04-22 13:07:11 -07:00
Michael Scire
b09adb6a34
stratosphere: only hold sm sessions open when needed
2019-04-22 12:59:49 -07:00
Michael Scire
cb88fdfd62
ro: implement UnloadNrr, half of LoadNrr/LoadNrrEx
2019-04-21 03:39:29 -07:00
Michael Scire
908de31a0e
pm: on 7.0.0+, npns is launched in maintenance boot ( closes #511 )
2019-04-20 10:36:38 -07:00
Michael Scire
a67d4064f0
pm: update with new meme command for 8.0.0
2019-04-20 10:36:38 -07:00
Michael Scire
ac07971211
stratosphere: custom exception handlers (reboot to fusee)
2019-04-12 15:28:46 -07:00
Michael Scire
03e176d7f1
atmosphere: current year is 2019
2019-04-07 19:00:49 -07:00
Michael Scire
c6d67eab6a
strat: 0 -> ResultSuccess
2019-03-28 22:39:39 -07:00
Michael Scire
9427a5cf46
strat: use TitleId defs instead of magics.
2019-03-28 21:49:14 -07:00
Michael Scire
0001e93810
strat: use atmosphere results instead of magics
2019-03-28 20:19:38 -07:00
Michael Scire
acffae6643
strat: replace kernel/dbg magic numbers with result defs
2019-03-28 16:57:18 -07:00
Michael Scire
696f66f620
pm: Use result definitions instead of magic numbers
2019-03-28 15:16:36 -07:00
Michael Scire
eb90603f18
pm: increase heap size (fixes fs reliability issues with gcc 8.3.0)
2019-03-26 17:47:29 -07:00
Michael Scire
3316820f86
pm: use fixed-sized buf + scoped lock (gcc 8.3 compat)
2019-03-25 17:12:19 -07:00
Michael Scire
b4b1208222
stratosphere: fix svcExitThread usage
2019-03-05 07:50:27 -08:00
Michael Scire
37d3577028
dmnt: allow disabling cheats via title-specific button combo
2019-03-04 06:55:37 -08:00
Michael Scire
f2f25dd5ed
atmosphere: launch tma (fixes home button)
2019-03-03 23:53:53 -08:00
Michael Scire
b57ec74ca3
pm: remove duplicate definitions
2019-02-27 03:33:42 -08:00
Michael Scire
89503049b3
dmnt: pull in from ams.tma branch
2019-02-27 01:44:47 -08:00
Michael Scire
f00dd05f82
Make stratosphere use new libnx HosVersion API
2019-02-20 14:17:51 -08:00
Michael Scire
784964d49d
ams.mitm: add bpc handler, for reboot power button stuff
2019-02-04 21:17:05 -08:00
Michael Scire
e715197290
Merge fs.mitm and set.mitm.
2019-02-04 20:15:16 -08:00
Michael Scire
4e99eaa590
pm: Update for 7.0.0
2019-01-31 03:32:47 -08:00
Michael Scire
da68d02c77
pm: fix memory profiles *again* (required for botw video update on 3.0)
2019-01-25 00:03:54 -08:00
Michael Scire
2677cf68d4
pm/0.8.3: remove memory profile adjustment entirely
2019-01-24 12:09:41 -08:00
Michael Scire
cedbcba3e3
0.8.3: fix some memory/deadlock issues
2019-01-24 11:41:32 -08:00
Michael Scire
08d1e9b880
fatal: fix payload size, pm: take from application instead of applet
2019-01-24 08:33:06 -08:00
Michael Scire
8a73ad996a
pm: add support for maintenance mode
2019-01-22 05:38:27 -08:00
Michael Scire
f61f5feaf4
pm: Launch set.mitm earlier in boot.
2019-01-22 05:38:27 -08:00
Michael Scire
83025080c8
sm: change InstallMitM to wait for registration instead of 0xE15
2019-01-22 05:38:27 -08:00
Michael Scire
8a92a63a64
pm: Don't launch titles twice due to boot2.flag
2018-12-05 23:44:11 -08:00
Michael Scire
907f6fa72d
stratosphere: make tma non-kip, add to build system
2018-12-05 23:36:12 -08:00
Michael Scire
2708de3876
debug-kit: Implement tma.stub
2018-11-30 18:18:03 -08:00
Michael Scire
49ad66e478
stratosphere: Fix fs.mitm bis_protect race condition.
2018-11-30 02:42:48 -08:00
Michael Scire
420361597e
all: Change flagging location. Support (but deprecate) old location.
2018-11-15 04:26:40 -08:00
Michael Scire
cf510ad9bf
pm: Only register privileged processes with FS as needed
2018-11-08 05:28:52 -08:00
Michael Scire
54a22797a7
Make libstratosphere a submodule
2018-11-08 01:24:40 -08:00
Michael Scire
3b8bb325e8
pm: Use non-system event for process tracking.
2018-11-07 23:43:59 -08:00
Michael Scire
6ef34d80a0
libstrat: automatically detect+format rawdata structs correctly.
2018-10-31 05:04:00 +09:00
Michael Scire
887b4e0275
pm: update for libstratosphere refactor
2018-10-31 05:04:00 +09:00
Michael Scire
06accd00f9
pm: steal memory from 4.0.0+ ? applet : application
2018-10-17 16:28:53 -07:00
Michael Scire
5dc31f001e
Stratosphere: Fix FS permissions for <4.0.0 KIPs
2018-10-17 16:26:36 -07:00
Michael Scire
6711cd93a8
atmosphere: extract API version management to common folder
2018-10-16 17:54:50 -07:00
Pika
9ae62a27dd
Fix ProcesState enum field names
2018-10-16 20:29:48 +09:00
misson20000
2d6aba7a70
pm: add AtmosphereGetCurrentLimitInfo command to pm:dmnt
2018-10-05 13:55:27 +09:00
Michael Scire
488fc0f119
pm: Support for 6.0.0
2018-09-08 23:47:15 -07:00
hexkyz
28e4d4411d
Add and fix copyright notices for better GPL compliance (thanks @naehrwert and @CTCaer).
2018-09-07 16:00:13 +01:00
Michael Scire
441e58be56
anti-telemetry: Do not boot Error Collection sysmodule
2018-08-01 23:15:52 -07:00
Michael Scire
cb4089e49c
Stratosphere: use isxdigit to check if char is hex.
2018-07-29 17:27:30 -07:00
Michael Scire
5a63f4e304
PM: Make boot2 launch SD card content with StorageId_None
2018-07-27 19:34:22 -07:00
Michael Scire
2667266aad
pm.boot2: Skeleton hook for SD-mandated launches
2018-07-27 03:22:06 -07:00
Michael Scire
c079803189
PM: Use enum in EmbeddedBoot2
2018-07-27 02:37:45 -07:00
Michael Scire
9f16062767
PM: Embed boot2 logic in PM.
2018-07-27 02:23:53 -07:00
misson20000
6adcb483e5
pm: remove magic flag/event numbers to improve readability and understandability
2018-07-27 02:03:28 -07:00
Michael Scire
9d0d9d95e1
Stratosphere: Give more memory to SYSTEM, use less memory.
2018-07-27 01:44:34 -07:00
Léo Lam
5b3e8e1c5d
stratosphere: Use RAII for locks
...
This renames the Mutex class member functions so that the mutex types
satisfy Lockable.
This makes them usable with standard std::scoped_lock
and std::unique_lock, which lets us use RAII and avoids the need
for a custom RAII wrapper :)
2018-07-10 09:38:18 -07:00
Léo Lam
18153713d9
pm: Fix missing include
2018-07-10 09:38:18 -07:00
Tony Wasserka
ad636f7216
Modernize C++ usage ( #144 )
...
* Stratosphere: Use modern C++ idioms in some places
* algorithms like std::for_each are used instead of raw loops
* Stratosphere: Replace more raw loops with algorithms
* Stratosphere: Add a utility predicate function to test for equality with a reference element
This can be used to rewrite some common raw loops using algorithms instead
* fs.mitm: Use variant
* fs.mitm: Use enum class
* fs.mitm: Turn RomFSSourceInfo::Cleanup into a destructor
This obsoletes the need for a custom deleter in other places
* fs.mitm: Use enum class some more
* fs.mitm: Use unique_ptr
* fs.mitm: Simplify initialization
* Stratosphere: Simplify initialization
* fs.mitm: Use unique_ptr (fix memory leak along the way)
The previous code was using "delete" rather than "delete[]"
* fs.mitm: Use vector::emplace_back rather than push_back
emplace_back constructs elements in-place, hence avoiding a redundant element copy.
* Stratosphere: Replace more raw loops with algorithms
* Stratosphere: Use unique_ptr
* fs.mitm: Replace more raw loops with algorithms
* Stratosphere: Prefer move-construction over copy-construction when moving sink parameters around
2018-06-19 11:07:31 -07:00
Michael Scire
f41b780c0a
PM: Fix remaining issues, now works properly again.
2018-06-15 00:47:07 -06:00