Commit graph

56 commits

Author SHA1 Message Date
Michael Scire
746dbfe018 ams_mitm: Implement emummc Nintendo folder redirection 2019-12-07 12:41:28 -08:00
Michael Scire
421324b498 mitm/cfg: pass around override status for decision-making 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
2f959785e1 loader: 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
93d83c5bb9 ams: initial support for 9.0.0 2019-09-14 10:43:39 -07:00
Michael Scire
227a1d938d creport: refactor to use sts:: namespace. 2019-07-15 14:35:48 -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
2d0c881ffe strat: go all in on ncm::TitleId 2019-07-11 22:24:59 -07:00
Michael Scire
e5c5101e8a Add missing extension cleanup. 2019-06-27 20:51:57 -07:00
Michael Scire
934ff7bbde <int> -> <s32> 2019-06-27 20:16:56 -07:00
Michael Scire
6ba2090c01 ldr: address review commentary. 2019-06-27 17:37:33 -07:00
Michael Scire
61fcf5e0f4 loader: completely rewrite. 2019-06-26 15:46:19 -07:00
Michael Scire
cead8a36ea stratosphere: more result cleanup 2019-06-20 02:00:59 -07:00
Michael Scire
6699fda8c9 loader: implement 8.1.0 changes 2019-06-19 11:51:30 -07:00
Michael Scire
f9bf8923b1 loader: refactor for R_TRY 2019-06-17 16:29:09 -07:00
Michael Scire
41f5b39f6b stratosphere: stop using kernelAbove 2019-05-10 03:25:07 -07:00
Michael Scire
ed86c44a49 loader: refactor to use LoaderModuleInfo 2019-04-20 18:15:39 -07:00
Michael Scire
03e176d7f1 atmosphere: current year is 2019 2019-04-07 19:00:49 -07:00
Mat M
b237168ec7 loader: Silence Wmissing-field-initializers warnings (#499)
Specifying 0 as the initial entry of a structure is a C-ism. C++ permits
using an empty set of braces to signify the same behavior, silencing
missing initializer warnings.
2019-04-04 21:05:41 -07:00
Michael Scire
c6d67eab6a strat: 0 -> ResultSuccess 2019-03-28 22:39:39 -07:00
Michael Scire
db19fa0f7f loader: Use result definitions instead of magic numbers 2019-03-28 15:06:50 -07:00
Michael Scire
dc1db0dc72 loader: Ensure code:/ unmounts if mounted. 2019-03-23 18:27:53 -07:00
Michael Scire
48e4688c13 loader: begin needed support for HBL to use web browser commands 2019-03-20 07:53:56 -07:00
Michael Scire
5f836aca6d Loader: set 7.0.0+ process bit when relevant 2019-01-31 04:46:20 -08:00
misson20000
35cf3b65a3 loader/ECS: don't clear ECS on failure, add ClearExternalContentSource command 2019-01-22 05:38:27 -08:00
misson20000
5c147e5188 loader: add SetExternalContentSource extension 2018-10-29 07:11:16 +09:00
Michael Scire
6afbcd12d9 Loader: Button override + first-class HBL support 2018-09-19 16:21:46 -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
SciresM
bb0f3ac024
loader: Add support for 6.0.0. 2018-09-06 11:57:57 +09:00
Michael Scire
3a2520a3b7 Loader: Add support for exefs redirection to code nsp on SD. 2018-07-29 16:35:43 -07:00
Michael Scire
b365065a2d Loader: Support loading FsStorageId_None content from SD. 2018-07-27 19:53:20 -07:00
Michael Scire
bcf81fe957 Loader: Fix argument passing. 2018-06-24 21:39:05 -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
e05f199394 Loader: Fix (all?) remaining bugs in ldr:pm.
Loader now works when booted as a KIP1. NOTE: ldr:ro still needs
debugging.
2018-05-01 16:49:20 -06:00
Michael Scire
991357f309 Loader: Add NRRInfo to RegisteredProcess, refactor Registration:: 2018-04-26 17:03:10 -06:00
Michael Scire
1ec3eb1ace Loader: is_64_bit -> is_64_bit_addspace 2018-04-26 14:53:33 -06:00
Michael Scire
82d9728372 Loader: Save process->is_64_bit as prep for ldr:ro 2018-04-26 14:51:07 -06:00
Michael Scire
3e36e81e80 Loader: Fix bugs in CreateProcess(), which now succeeds on hardware (1.0.0) 2018-04-24 17:56:32 -06:00
Michael Scire
80fedc51c1 Loader: Implement all remaining parts of CreateProcess except LoadNsoSegment. 2018-04-24 06:25:31 -06:00
Michael Scire
a96f862f11 Loader: Implement most of LoadNsosIntoProcessMemory 2018-04-24 06:01:32 -06:00
Michael Scire
b11c2fe755 Loader: Implement NSO Extent calculation (note: ASLR currently disabled due to lack of entropy source.) 2018-04-24 04:41:29 -06:00
Michael Scire
5e5dd530c7 Clean up Nso fopen semantics 2018-04-24 03:14:40 -06:00
Michael Scire
1c47959bca Loader: Call svcCreateProcess() 2018-04-24 02:12:19 -06:00
Michael Scire
2d6445d2f9 Loader: Implement InitializeProcessInfo() 2018-04-24 02:08:11 -06:00