Commit Graph

144 Commits

Author SHA1 Message Date
Michael Scire
9113b04b48 update libstrat 2019-04-05 13:42:34 -07:00
Michael Scire
938169cd3c fs.mitm: experimental support for save redirection to sd. 2019-04-05 13:42:09 -07:00
Michael Scire
262d6af519 bis_protect: guard against autorcm on rcm-patched units 2019-04-01 17:24:15 -07:00
Michael Scire
81aa5c7ec7 set_mitm: result defs instead of magics 2019-03-28 23:04:13 -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
4167dfea14 strat: vi results over magics 2019-03-28 20:39:17 -07:00
Michael Scire
c50cb83ec1 strat: use lr results instead of magics 2019-03-28 20:31:48 -07:00
Michael Scire
0001e93810 strat: use atmosphere results instead of magics 2019-03-28 20:19:38 -07:00
Michael Scire
84c4cd7c53 strat: use sf/hipc results instead of magic numbers 2019-03-28 20:00:16 -07:00
Michael Scire
29be429d2f strat: fix remaining FS result magic numbers 2019-03-28 19:45:41 -07:00
Michael Scire
acffae6643 strat: replace kernel/dbg magic numbers with result defs 2019-03-28 16:57:18 -07:00
Michael Scire
285feba42b fatal: Standardize result definitions 2019-03-28 15:37:50 -07:00
Michael Scire
b940f61d42 sm: Use result definitions instead of magic numbers 2019-03-28 15:28:36 -07:00
Michael Scire
696f66f620 pm: Use result definitions instead of magic numbers 2019-03-28 15:16:36 -07:00
Michael Scire
db19fa0f7f loader: Use result definitions instead of magic numbers 2019-03-28 15:06:50 -07:00
Michael Scire
2678735f73 stratosphere: migrate result headers to libstrat 2019-03-28 14:23:34 -07:00
Michael Scire
20ba6432b9 set.mitm: fix 1.0.0 compat (closes #459) 2019-03-24 19:27:37 -07:00
Michael Scire
4d0ab41e6e dmnt-cheat: Fix debug event management 2019-03-05 23:58:36 -08:00
Michael Scire
b4b1208222 stratosphere: fix svcExitThread usage 2019-03-05 07:50:27 -08:00
Michael Scire
7d2dd628ba dmnt-cheat: multi-nybble opcodes, update libstrat 2019-03-05 00:53:45 -08:00
Michael Scire
a0e06cf7b2 exo/bpc.mitm: Add support for proper shutdown. 2019-02-21 07:05:58 -08:00
Michael Scire
f00dd05f82 Make stratosphere use new libnx HosVersion API 2019-02-20 14:17:51 -08:00
Michael Scire
6027ff243d Enforce upper bound on application tid range 2019-02-12 02:53:31 -08:00
Michael Scire
a3adb70a04 stratosphere: version detect via svcCallSecureMonitor 2019-01-31 03:24:19 -08:00
Michael Scire
de07ed42bb update libstratosphere for new GetRuntimeFirmwareVersion() impl 2019-01-31 03:08:14 -08:00
Michael Scire
7bdb2ae897 libstrat: update for deadlock fix 2019-01-26 06:24:49 -08:00
Michael Scire
031c9e545b fatal: reboot to sdmc:/atmosphere/reboot_payload.bin 2019-01-24 08:20:27 -08:00
Michael Scire
24f74312f2 Update libstrat for bugfix 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
be5b58d033 fatal: Reboot to RCM if VOL is pressed instead of PWR. 2018-11-30 05:33:35 -08:00
Michael Scire
49ad66e478 stratosphere: Fix fs.mitm bis_protect race condition. 2018-11-30 02:42:48 -08:00
Michael Scire
e321f0ac04 Fix libstratosphere update 2018-11-29 12:51:22 -08:00
Michael Scire
87c0c8b83e Update libstratosphere 2018-11-29 12:48:40 -08:00
Michael Scire
e0c7bfc93d fs.mitm: Always mitm non-sysmodules. 2018-11-15 14:59:47 -08:00
Michael Scire
46cc08160d mitm: Improve session acquire semantics. 2018-11-15 14:19:34 -08:00
Michael Scire
ce1a6a68bf fs.mitm/loader: Fix crashes when launching too many processes. 2018-11-08 16:02:04 -08:00
Michael Scire
54a22797a7 Make libstratosphere a submodule 2018-11-08 01:24:40 -08:00
Michael Scire
5ef01edab5 Delete libstratosphere in prep for submodule 2018-11-08 01:12:30 -08:00
Michael Scire
6538554485 libstratosphere: add ReadOnlySystemEvent helper 2018-11-07 23:25:16 -08:00
Michael Scire
9b1a2451b0 libstratosphere: Add thread primitive, WaitableManager->RequestStop() 2018-11-07 23:25:11 -08:00
Michael Scire
e65bee0d6a libstratosphere: Implement message queues 2018-11-07 23:25:00 -08:00
Michael Scire
8426a4dc77 libstrat: Use iterators when looping deferred waitables 2018-11-07 22:59:30 -08:00
Michael Scire
147f3c690a libstrat: Significantly cleanup waitable manager result handling. 2018-11-07 22:40:19 -08:00
Michael Scire
bac81f4ccc libstrat: fix potential oob deref in WaitableManager (closes #256) 2018-11-07 19:10:04 -08:00
Michael Scire
2894989eb7 libstrat: improve waitable manager cancelsync semantics 2018-11-07 12:42:06 -08:00
Michael Scire
952ee4227d libstrat: update curthreadhandle for libnx 1.5.0 2018-11-05 22:56:04 -08:00
Michael Scire
9142e90a04 libstratosphere: Use intraprocess event signaling for new waitable management 2018-11-05 18:35:21 -08:00
Michael Scire
3ed239296a libstrat: Allow nullptr buffers if 0 size. (closes #255) 2018-11-04 21:52:53 -08:00
Michael Scire
e786bc7e9a fs.mitm: Only create storage interface when needed. 2018-11-04 12:45:29 -08:00
Michael Scire
be044e691c libstrat: delete old ipc templating. 2018-10-30 15:57:15 -07:00
TuxSH
536b89efae Add boost as submodule 2018-10-30 23:49:26 +01:00
Michael Scire
44175058f6 libstrat: mark ServiceObjectHolder functions const 2018-10-31 05:04:00 +09:00
Michael Scire
6336089b63 libstrat: remove unused struct in serializer 2018-10-31 05:04:00 +09:00
Michael Scire
6ef34d80a0 libstrat: automatically detect+format rawdata structs correctly. 2018-10-31 05:04:00 +09:00
Michael Scire
4cdd9aa8f1 libstratosphere: Fix uninitialized memory bug. 2018-10-31 05:04:00 +09:00
Michael Scire
23a85a7c24 fs.mitm: split out set.mitm 2018-10-31 05:04:00 +09:00
Michael Scire
058f735031 libstratosphere: refactor everything 2018-10-31 05:04:00 +09:00
Michael Scire
c0fe4f7af7 fs.mitm: Intercept qlaunch sysver request 2018-10-24 14:16:39 -07:00
Michael Scire
781f2597e5 libstratosphere: Fix receive for multi-static IPC buffers 2018-10-17 03:49:05 -07:00
Michael Scire
6711cd93a8 atmosphere: extract API version management to common folder 2018-10-16 17:54:50 -07:00
Michael Scire
f603dbfc98 fs.mitm: Add domain support (closes #202) 2018-10-16 13:33:45 -07:00
Michael Scire
0cad1935dd libstratosphere: Fix condvar wrapper primitives 2018-09-09 07:04:16 -07: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
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
a28b40866a stratosphere: Remove an unneeded constructor
domain_objects is already an array of empty std::shared_ptrs (since
std::shared_ptr has a sane default constructor).
2018-07-10 09:38:18 -07:00
Michael Scire
8da27723fc fs.mitm: Fix c++ modernization breaking changes 2018-06-27 23:02:06 -06:00
Michael Scire
284677c486 libstratosphere: Cleanup resources when doing OutSession for domains. 2018-06-24 12:39:09 -06: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
Michael Scire
4d36697080 Make PM Compile. Note: Currently broken. 2018-06-14 23:32:01 -06:00
Michael Scire
c2d9ac8f5c fs.mitm: WIP LayeredFS impl (NOTE: UNUSABLE ATM)
Also greatly refactors libstratosphere, and does a lot of other things.
There is a lot of code in this one.
2018-06-14 17:51:18 -06:00
Michael Scire
237ff0d1e7 libstratosphere/fs.mitm: Push WIP support for Domains. Not yet fully working. 2018-06-12 16:01:04 -06:00
Michael Scire
5c80016c81 fs.mitm: Add HANS-style redirection for System Data Archives. 2018-06-10 11:11:23 -06:00
Michael Scire
3cbdf0b2b9 fs.mitm: Get Title ID on fsp-srv init, Add worker to handle subinterfaces. 2018-06-10 03:07:15 -06:00
Tony Wasserka
edc099f026 Use "final" and "override" where appropriate (#117) 2018-06-02 22:46:27 -07:00
TuxSH
52114760b3 Ignore unused-but-set-variable in ipc_templating.h 2018-05-15 00:44:10 +02:00
Michael Scire
9e558dafee libstratosphere: Make boolean autoparsing match official semantics. 2018-05-07 07:22:41 -06:00
Michael Scire
700f92162d ProcessManager: Fix Synchronization. Now works on 1.0.0 hardware. 2018-05-06 23:00:05 -06:00
Léo Lam
a097babe18 Replace std::make_tuple with simpler syntax (#77)
* boot2: Simplify g_additional_launch_programs

It appears that Stratosphère is targeting C++17. In C++17,
std::make_tuple is not required for initialisating a tuple anymore.
Same thing, but less typing

* Replace std::make_tuple with {}

More readable and less noise. Also fixes two missing return statements.
2018-05-05 11:41:39 -07:00
Léo Lam
cf50bad36c ipc_templating: Avoid depending on order of evaluation (#83)
f(x, x++) is unspecified behaviour in C++. An implementation could
evaluate arguments from left to right or from right to left.

`T(r.Buffers[a_index], r.BufferSizes[a_index++])` might
access the wrong buffer if `a_index++` is evaluated before the first
argument.

Fixes -Wsequence-point warnings
2018-05-05 11:41:08 -07:00
Michael Scire
d6cf7c605f ProcessManager: Implement core process management logic. 2018-05-03 23:58:37 -06:00
Michael Scire
7ab9f507cb ProcessManager: Fill out ProcessTracking::Initialize() 2018-05-03 16:15:12 -06:00
Michael Scire
b5412df53b Stratosphere: Add IPC templating for non-member functions. 2018-05-03 03:14:48 -06:00
Michael Scire
9e03852703 Loader: Fix bugs ldr:ro, Loader now works fully on hardware. 2018-05-02 01:39:24 -06:00
Michael Scire
30f975a558 Stratosphere: Fix remaining bugs in sm, which now works as a KIP1 on hardware 2018-04-30 22:27:26 -06:00
Michael Scire
ecf2517bd5 Stratosphere: Fix IServer constructors. SM is fully functional on hardware now. 2018-04-22 05:13:33 -06:00
Michael Scire
674528b246 Stratosphere: Implement support for deferred commands. Finish sm GetService()'s deferred path. 2018-04-22 03:02:19 -06:00
Michael Scire
080816f2b6 Add ExistingPortServer to libstratosphere 2018-04-22 00:33:09 -06:00
Michael Scire
7dc5a5914b Stratosphere: Move boost/callable_traits into libstratosphere 2018-04-21 21:15:54 -06:00
Michael Scire
044d367eda Stratosphere: ServiceServer<T> -> IServer<T> as abstract base class. 2018-04-21 20:57:24 -06:00
Michael Scire
4aa93ad354 IPC templating style fix 2018-04-21 20:38:13 -06:00
Michael Scire
b81ceeca21 Stratosphere: extract common code to libstratosphere. 2018-04-21 20:31:06 -06:00