Commit Graph

459 Commits

Author SHA1 Message Date
Michael Scire
8da7ecb197 sf: PrepareForErrorReply is common to all objects 2019-12-07 18:44:47 -08:00
Michael Scire
4fabafcd06 libstrat: enable lto 2019-12-07 18:44:47 -08:00
Michael Scire
0eea56f077 strat: split out common functionality for future meso use 2019-12-07 18:44:47 -08:00
Michael Scire
528215f443 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 18:44:46 -08:00
Michael Scire
15def4ef63 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 18:44:46 -08:00
Michael Scire
1e8b13ac07 libstrat: fix domain issues. in/out objects now work. 2019-12-07 18:44:45 -08:00
Michael Scire
ba1fc9ef0a sf: implement mitm forwarding + domains. 2019-12-07 18:44:44 -08:00
Michael Scire
e2162d3f3d libstrat: namespace remaining non-namespaced code. more new-ipc updates 2019-12-07 18:44:44 -08:00
Michael Scire
0af2a628fd boot2: move to separate process 2019-12-07 18:44:42 -08:00
Michael Scire
a2b5865595 strat: statically allocate additional threads 2019-12-07 18:44:41 -08:00
Michael Scire
e94abc4b5e dmnt: update for new-ipc 2019-12-07 18:44:40 -08:00
Michael Scire
e679446994 fatal: update for new-ipc 2019-12-07 18:44:39 -08:00
Michael Scire
25ed190f4e spl: update for new-ipc (fixes two bugs in sf) 2019-12-07 18:44:38 -08:00
Michael Scire
f1a77be02a sf-impl: remove debug condition 2019-12-07 18:44:37 -08:00
Michael Scire
d1ae859891 pm: update for new-ipc 2019-12-07 18:44:35 -08:00
Michael Scire
d81f97862a loader: update for new-ipc 2019-12-07 18:44:34 -08:00
Michael Scire
ace60d0e3e sf: implement CopyFromCurrentDomain 2019-12-07 18:44:34 -08:00
Michael Scire
021acd4275 hipc: begin implementing domains. fixes ro + sm together 2019-12-07 18:44:33 -08:00
Michael Scire
461ed913ef new-ipc: implement deferral. sm now works. 2019-12-07 18:44:32 -08:00
Michael Scire
15f3adb8d2 sf: implement service framework enough for ro to work.
This completely re-does the whole interface for ipc servers.
2019-12-07 18:44:32 -08:00
Michael Scire
30804f8b9e libstrat: update for latest libnx, delete ipc in prep for rewrite 2019-12-07 18:44:31 -08:00
Michael Scire
5c610a2225 sts: add STS_UNREACHABLE_DEFAULT_CASE() 2019-12-07 18:44:30 -08:00
Michael Scire
b52d630cf0 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 18:44:30 -08:00
Michael Scire
6815ccdf68 mitm: fix long-standing C descriptor issue. 2019-12-07 18:44:29 -08:00
Michael Scire
ec2ea1e850 libstrat: namespace hossynch.hpp 2019-12-07 18:44:28 -08:00
Michael Scire
8bae7b4a78 dmnt: refactor to use sts:: namespace. 2019-09-18 12:42:58 -07:00
Michael Scire
d0d6731ce9 ams: initial support for 9.0.0 2019-09-18 12:42:52 -07:00
Michael Scire
2d0811351e fatal: refactor into sts namespace 2019-08-08 17:49:15 -07:00
Michael Scire
d8f5407095 util: fix copy/paste error in intrusive lists 2019-08-08 17:49:14 -07:00
Michael Scire
5e9628c1fa kvdb: fix iterator access issue 2019-08-08 17:49:09 -07:00
Michael Scire
0c5dab8022 util: Add Intrusive List/RBTree 2019-07-17 19:23:49 -07:00
Michael Scire
fccef090ed ipc: remove boost usage 2019-07-17 00:08:02 -07:00
Michael Scire
c7478778cf remove boost include 2019-07-17 00:07:24 -07:00
Michael Scire
09d8f593c6 kvdb: Implement FileKeyValueStore/Cache 2019-07-16 23:25:39 -07:00
Michael Scire
99ebbd2a18 kvdb: implement MemoryKeyValueStore 2019-07-16 23:25:39 -07:00
TuxSH
a4a3ebed50 Fix building with latest commit 2019-07-16 01:24:26 +02:00
Michael Scire
5ae7b3ea9e fix missing include in sm_types.hpp 2019-07-12 17:59:34 -07:00
Michael Scire
a8282205b5 libstrat: update with svc types for creport 2019-07-12 05:30:34 -07:00
Michael Scire
69dbb69e0b sm: add api for forward declaring a service mitm 2019-07-04 12:50:10 -07:00
Michael Scire
b9e5305273 mitm api: remove inconsistent association 2019-07-03 22:57:15 -07:00
Michael Scire
ccfadc501b libstrat: use WaitService where useful 2019-07-02 22:23:36 -07:00
Michael Scire
45700a12e8 libstrat/sm: add ScopedServiceHolder, Wait(Mitm/Service) 2019-07-02 22:21:18 -07:00
Michael Scire
d7d7cba3d3 title ids: go all in on ncm::TitleId 2019-07-02 20:53:44 -07:00
Michael Scire
c9dc24cce1 libstrat: remove sizeof() /sizeof([0]) 2019-07-02 14:36:34 -07:00
JamePeng
d6eacecce9 Add Missing Header for pm_info_api.hpp (#14) 2019-07-01 20:21:59 -07:00
Michael Scire
7bc25c01a0 libstrat: update for pm rewrite 2019-06-29 02:18:57 -07:00
Michael Scire
3f6df380c8 ipc: MAKE_SERVICE_COMMAND_META macro 2019-06-27 23:29:05 -07:00
Michael Scire
403f1c7a01 patcher: fix memcmp bug. 2019-06-27 20:51:23 -07:00
Michael Scire
e37089d167 libstrat: implement functionality for loader rewrite 2019-06-26 15:45:35 -07:00
Michael Scire
cf5c6cdad9 libstrat: integrate sm API, add HasService/HasMitm. 2019-06-24 17:56:00 -07:00