LogManager: implement system module, client api, logging api (#1617)

Some notes:

* Unless `atmosphere!enable_log_manager` is true, Nintendo's log manager will be used instead.
  * This prevents paying memory costs for LM when not enabling logging.
  * To facilitate this, Atmosphere's log manager has a different program id from Nintendo's.
  * `atmosphere!enable_htc` implies `atmosphere!enable_log_manager`.
* LogManager logs to tma, and the SD card (if `lm!enable_sd_card_logging` is true, which it is by default).
* Binary logs are saved to `lm!sd_card_log_output_directory`, which is `atmosphere/binlogs` by default.
This commit is contained in:
SciresM
2021-09-11 19:32:14 -07:00
committed by GitHub
parent a1fb8a91c8
commit e9849c74cf
94 changed files with 5595 additions and 45 deletions

View File

@@ -20,12 +20,13 @@
namespace ams::psc {
enum PmState {
PmState_Awake = 0,
PmState_ReadyAwaken = 1,
PmState_ReadySleep = 2,
PmState_ReadySleepCritical = 3,
PmState_ReadyAwakenCritical = 4,
PmState_ReadyShutdown = 5,
PmState_FullAwake = 0,
PmState_MinimumAwake = 1,
PmState_SleepReady = 2,
PmState_EssentialServicesSleepReady = 3,
PmState_EssentialServicesAwake = 4,
PmState_ShutdownReady = 5,
PmState_Unknown = 6,
};
constexpr inline u32 MaximumDependencyLevels = 20;