Skip to content

Commit

Permalink
htc: configure usage via system setting
Browse files Browse the repository at this point in the history
  • Loading branch information
SciresM committed Feb 24, 2021
1 parent 0ec54ed commit ce149f9
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 4 deletions.
3 changes: 3 additions & 0 deletions config_templates/system_settings.ini
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
; Controls whether dns.mitm logs to the sd card for debugging
; 0 = Disabled, 1 = Enabled
; enable_dns_mitm_debug_log = u8!0x0
; Controls whether htc is enabled
; 0 = Disabled, 1 = Enabled
; enable_htc = u8!0x0
[hbloader]
; Controls the size of the homebrew heap when running as applet.
; If set to zero, all available applet memory is used as heap.
Expand Down
15 changes: 13 additions & 2 deletions libraries/libstratosphere/source/boot2/boot2_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ namespace ams::boot2 {
constexpr size_t NumPreSdCardLaunchPrograms = util::size(PreSdCardLaunchPrograms);

constexpr ncm::SystemProgramId AdditionalLaunchPrograms[] = {
ncm::SystemProgramId::Htc, /* htc */ /* TODO: should we do boot!use_htc_gen2, with default to on in custom settings? */
ncm::SystemProgramId::Am, /* am */
ncm::SystemProgramId::NvServices, /* nvservices */
ncm::SystemProgramId::NvnFlinger, /* nvnflinger */
Expand Down Expand Up @@ -80,7 +79,6 @@ namespace ams::boot2 {
constexpr size_t NumAdditionalLaunchPrograms = util::size(AdditionalLaunchPrograms);

constexpr ncm::SystemProgramId AdditionalMaintenanceLaunchPrograms[] = {
ncm::SystemProgramId::Htc, /* htc */
ncm::SystemProgramId::Am, /* am */
ncm::SystemProgramId::NvServices, /* nvservices */
ncm::SystemProgramId::NvnFlinger, /* nvnflinger */
Expand Down Expand Up @@ -188,6 +186,12 @@ namespace ams::boot2 {
return force_maintenance != 0;
}

bool IsHtcEnabled() {
u8 enable_htc = 1;
settings::fwdbg::GetSettingsItemValue(&enable_htc, sizeof(enable_htc), "atmosphere", "enable_htc");
return enable_htc != 0;
}

bool IsMaintenanceMode() {
/* Contact set:sys, retrieve boot!force_maintenance. */
if (IsForceMaintenance()) {
Expand Down Expand Up @@ -379,6 +383,13 @@ namespace ams::boot2 {
/* Check for and forward declare non-atmosphere mitm modules. */
DetectAndDeclareFutureMitms();

/* Device whether to launch tma or htc. */
if (IsHtcEnabled()) {
LaunchProgram(nullptr, ncm::ProgramLocation::Make(ncm::SystemProgramId::Htc, ncm::StorageId::None), 0);
} else {
LaunchProgram(nullptr, ncm::ProgramLocation::Make(ncm::SystemProgramId::Tma, ncm::StorageId::None), 0);
}

/* Launch additional programs. */
if (maintenance) {
LaunchList(AdditionalMaintenanceLaunchPrograms, NumAdditionalMaintenanceLaunchPrograms);
Expand Down
2 changes: 0 additions & 2 deletions libraries/libstratosphere/source/htcs/impl/htcs_service.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ namespace ams::htcs::impl {
public:
HtcsService(mem::StandardAllocator *allocator, htc::server::driver::IDriver *drv, htc::server::rpc::RpcClient *rc, rpc::DataChannelManager *dcm)
: m_allocator(allocator), m_driver(drv), m_rpc_client(rc), m_data_channel_manager(dcm) { /* ... */ }
public:
/* TODO */
public:
Result CreateSocket(s32 *out_err, s32 *out_desc, bool enable_disconnection_emulation);
Result DestroySocket(s32 desc);
Expand Down
5 changes: 5 additions & 0 deletions stratosphere/ams_mitm/source/set_mitm/settings_sd_kvs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,11 @@ namespace ams::settings::fwdbg {
/* 0 = Disabled, 1 = Enabled */
R_ABORT_UNLESS(ParseSettingsItemValue("atmosphere", "enable_dns_mitm_debug_log", "u8!0x0"));

/* Controls whether htc is enabled. */
/* TODO: Change this to default 1 when tma2 is ready for inclusion in atmosphere releases. */
/* 0 = Disabled, 1 = Enabled */
R_ABORT_UNLESS(ParseSettingsItemValue("atmosphere", "enable_htc", "u8!0x0"));

/* Hbloader custom settings. */

/* Controls the size of the homebrew heap when running as applet. */
Expand Down

0 comments on commit ce149f9

Please sign in to comment.