diff --git a/include/atmosphere/svc/svc_types.hpp b/include/atmosphere/svc/svc_types.hpp index cc4bb446..2284f955 100644 --- a/include/atmosphere/svc/svc_types.hpp +++ b/include/atmosphere/svc/svc_types.hpp @@ -29,7 +29,7 @@ namespace ams::svc { }; struct DebugInfoAttachProcess { - u64 title_id; + u64 program_id; u64 process_id; char name[0xC]; u32 flags; diff --git a/include/stratosphere.hpp b/include/stratosphere.hpp index fdbeea82..2e8ec8bf 100644 --- a/include/stratosphere.hpp +++ b/include/stratosphere.hpp @@ -24,7 +24,7 @@ #include "stratosphere/os.hpp" #include "stratosphere/dd.hpp" -/* Lots of things depend on NCM, for Title IDs. */ +/* Lots of things depend on NCM, for Program IDs. */ #include "stratosphere/ncm.hpp" /* At this point, just include the rest alphabetically. */ diff --git a/include/stratosphere/ams/ams_types.hpp b/include/stratosphere/ams/ams_types.hpp index dc24b936..bd4c4af2 100644 --- a/include/stratosphere/ams/ams_types.hpp +++ b/include/stratosphere/ams/ams_types.hpp @@ -95,7 +95,7 @@ namespace ams { u32 magic; u32 error_desc; - u64 title_id; + u64 program_id; union { u64 gprs[32]; struct { diff --git a/include/stratosphere/cfg/cfg_api.hpp b/include/stratosphere/cfg/cfg_api.hpp index 68e19740..a33799d0 100644 --- a/include/stratosphere/cfg/cfg_api.hpp +++ b/include/stratosphere/cfg/cfg_api.hpp @@ -31,18 +31,18 @@ namespace ams::cfg { void WaitSdCardInitialized(); /* Override key utilities. */ - bool IsTitleOverrideKeyHeld(ncm::TitleId title_id); - bool IsHblOverrideKeyHeld(ncm::TitleId title_id); - void GetOverrideKeyHeldStatus(bool *out_hbl, bool *out_title, ncm::TitleId title_id); - bool IsCheatEnableKeyHeld(ncm::TitleId title_id); + bool IsProgramOverrideKeyHeld(ncm::ProgramId program_id); + bool IsHblOverrideKeyHeld(ncm::ProgramId program_id); + void GetOverrideKeyHeldStatus(bool *out_hbl, bool *out_program, ncm::ProgramId program_id); + bool IsCheatEnableKeyHeld(ncm::ProgramId program_id); /* Flag utilities. */ - bool HasFlag(ncm::TitleId title_id, const char *flag); - bool HasTitleSpecificFlag(ncm::TitleId title_id, const char *flag); + bool HasFlag(ncm::ProgramId program_id, const char *flag); + bool HasContentSpecificFlag(ncm::ProgramId program_id, const char *flag); bool HasGlobalFlag(const char *flag); /* HBL Configuration utilities. */ - bool IsHblTitleId(ncm::TitleId title_id); + bool IsHblProgramId(ncm::ProgramId program_id); bool HasHblFlag(const char *flag); const char *GetHblPath(); diff --git a/include/stratosphere/dmnt/dmnt_cheat_types.hpp b/include/stratosphere/dmnt/dmnt_cheat_types.hpp index 1231cb5e..82062af9 100644 --- a/include/stratosphere/dmnt/dmnt_cheat_types.hpp +++ b/include/stratosphere/dmnt/dmnt_cheat_types.hpp @@ -28,7 +28,7 @@ namespace ams::dmnt::cheat { }; os::ProcessId process_id; - ncm::TitleId title_id; + ncm::ProgramId program_id; MemoryRegionExtents main_nso_extents; MemoryRegionExtents heap_extents; MemoryRegionExtents alias_extents; diff --git a/include/stratosphere/fatal/fatal_types.hpp b/include/stratosphere/fatal/fatal_types.hpp index 6dfb60f4..cec496a7 100644 --- a/include/stratosphere/fatal/fatal_types.hpp +++ b/include/stratosphere/fatal/fatal_types.hpp @@ -147,14 +147,14 @@ namespace ams::fatal { std::memset(this, 0, sizeof(*this)); } - void SetTitleIdForAtmosphere(ncm::TitleId title_id) { - /* Right now, we mux title ID in through afsr when creport. */ + void SetProgramIdForAtmosphere(ncm::ProgramId program_id) { + /* Right now, we mux program ID in through afsr when creport. */ /* TODO: Better way to do this? */ - this->afsr0 = static_cast(title_id); + this->afsr0 = static_cast(program_id); } - ncm::TitleId GetTitleIdForAtmosphere() const { - return ncm::TitleId{this->afsr0}; + ncm::ProgramId GetProgramIdForAtmosphere() const { + return ncm::ProgramId{this->afsr0}; } void SetRegisterValue(RegisterName name, RegisterType value) { @@ -265,15 +265,15 @@ namespace ams::fatal { std::memset(this, 0, sizeof(*this)); } - void SetTitleIdForAtmosphere(ncm::TitleId title_id) { - /* Right now, we mux title ID in through afsr when creport. */ + void SetProgramIdForAtmosphere(ncm::ProgramId program_id) { + /* Right now, we mux program ID in through afsr when creport. */ /* TODO: Better way to do this? */ - this->afsr0 = static_cast(static_cast(title_id) >> 0); - this->afsr1 = static_cast(static_cast(title_id) >> 32); + this->afsr0 = static_cast(static_cast(program_id) >> 0); + this->afsr1 = static_cast(static_cast(program_id) >> 32); } - ncm::TitleId GetTitleIdForAtmosphere() const { - return ncm::TitleId{(static_cast(this->afsr1) << 32ul) | (static_cast(this->afsr0) << 0ul)}; + ncm::ProgramId GetProgramIdForAtmosphere() const { + return ncm::ProgramId{(static_cast(this->afsr1) << 32ul) | (static_cast(this->afsr0) << 0ul)}; } void SetRegisterValue(RegisterName name, RegisterType value) { @@ -319,7 +319,7 @@ namespace ams::fatal { struct ThrowContext { Result result; - ncm::TitleId title_id; + ncm::ProgramId program_id; char proc_name[0xD]; bool is_creport; CpuContext cpu_ctx; @@ -331,7 +331,7 @@ namespace ams::fatal { void ClearState() { this->result = ResultSuccess(); - this->title_id = ncm::TitleId::Invalid; + this->program_id = ncm::ProgramId::Invalid; std::memset(this->proc_name, 0, sizeof(this->proc_name)); this->is_creport = false; std::memset(&this->cpu_ctx, 0, sizeof(this->cpu_ctx)); diff --git a/include/stratosphere/ldr/ldr_pm_api.hpp b/include/stratosphere/ldr/ldr_pm_api.hpp index 440513fd..0945a32d 100644 --- a/include/stratosphere/ldr/ldr_pm_api.hpp +++ b/include/stratosphere/ldr/ldr_pm_api.hpp @@ -21,9 +21,9 @@ namespace ams::ldr::pm { /* Process Manager API. */ Result CreateProcess(Handle *out, PinId pin_id, u32 flags, Handle reslimit); - Result GetProgramInfo(ProgramInfo *out, const ncm::TitleLocation &loc); - Result PinTitle(PinId *out, const ncm::TitleLocation &loc); - Result UnpinTitle(PinId pin_id); - Result HasLaunchedTitle(bool *out, ncm::TitleId title_id); + Result GetProgramInfo(ProgramInfo *out, const ncm::ProgramLocation &loc); + Result PinProgram(PinId *out, const ncm::ProgramLocation &loc); + Result UnpinProgram(PinId pin_id); + Result HasLaunchedProgram(bool *out, ncm::ProgramId program_id); } diff --git a/include/stratosphere/ldr/ldr_types.hpp b/include/stratosphere/ldr/ldr_types.hpp index 3ab3c3ea..4d7ebe23 100644 --- a/include/stratosphere/ldr/ldr_types.hpp +++ b/include/stratosphere/ldr/ldr_types.hpp @@ -27,7 +27,7 @@ namespace ams::ldr { u8 default_cpu_id; u16 flags; u32 main_thread_stack_size; - ncm::TitleId title_id; + ncm::ProgramId program_id; u32 acid_sac_size; u32 aci_sac_size; u32 acid_fac_size; @@ -149,7 +149,7 @@ namespace ams::ldr { u32 magic; u8 reserved_04[0xC]; - ncm::TitleId title_id; + ncm::ProgramId program_id; u8 reserved_18[0x8]; u32 fah_offset; u32 fah_size; @@ -188,8 +188,8 @@ namespace ams::ldr { u8 version; u8 reserved_209[3]; u32 flags; - ncm::TitleId title_id_min; - ncm::TitleId title_id_max; + ncm::ProgramId program_id_min; + ncm::ProgramId program_id_max; u32 fac_offset; u32 fac_size; u32 sac_offset; @@ -229,7 +229,7 @@ namespace ams::ldr { u32 system_resource_size; u32 version; u32 main_thread_stack_size; - char title_name[0x10]; + char program_name[0x10]; char product_code[0x10]; u8 reserved_40[0x30]; u32 aci_offset; diff --git a/include/stratosphere/ncm/ncm_types.hpp b/include/stratosphere/ncm/ncm_types.hpp index 61aff676..6860404e 100644 --- a/include/stratosphere/ncm/ncm_types.hpp +++ b/include/stratosphere/ncm/ncm_types.hpp @@ -30,169 +30,169 @@ namespace ams::ncm { SdCard = 5, }; - /* Title IDs. */ - struct TitleId { + /* Program IDs (Formerly: Title IDs). */ + struct ProgramId { u64 value; inline explicit operator u64() const { return this->value; } - /* Invalid Title ID. */ - static const TitleId Invalid; + /* Invalid Program ID. */ + static const ProgramId Invalid; /* System Modules. */ - static const TitleId SystemStart; + static const ProgramId SystemStart; - static const TitleId Fs; - static const TitleId Loader; - static const TitleId Ncm; - static const TitleId Pm; - static const TitleId Sm; - static const TitleId Boot; - static const TitleId Usb; - static const TitleId Tma; - static const TitleId Boot2; - static const TitleId Settings; - static const TitleId Bus; - static const TitleId Bluetooth; - static const TitleId Bcat; - static const TitleId Dmnt; - static const TitleId Friends; - static const TitleId Nifm; - static const TitleId Ptm; - static const TitleId Shell; - static const TitleId BsdSockets; - static const TitleId Hid; - static const TitleId Audio; - static const TitleId LogManager; - static const TitleId Wlan; - static const TitleId Cs; - static const TitleId Ldn; - static const TitleId NvServices; - static const TitleId Pcv; - static const TitleId Ppc; - static const TitleId NvnFlinger; - static const TitleId Pcie; - static const TitleId Account; - static const TitleId Ns; - static const TitleId Nfc; - static const TitleId Psc; - static const TitleId CapSrv; - static const TitleId Am; - static const TitleId Ssl; - static const TitleId Nim; - static const TitleId Cec; - static const TitleId Tspm; - static const TitleId Spl; - static const TitleId Lbl; - static const TitleId Btm; - static const TitleId Erpt; - static const TitleId Time; - static const TitleId Vi; - static const TitleId Pctl; - static const TitleId Npns; - static const TitleId Eupld; - static const TitleId Arp; - static const TitleId Glue; - static const TitleId Eclct; - static const TitleId Es; - static const TitleId Fatal; - static const TitleId Grc; - static const TitleId Creport; - static const TitleId Ro; - static const TitleId Profiler; - static const TitleId Sdb; - static const TitleId Migration; - static const TitleId Jit; - static const TitleId JpegDec; - static const TitleId SafeMode; - static const TitleId Olsc; - static const TitleId Dt; - static const TitleId Nd; - static const TitleId Ngct; + static const ProgramId Fs; + static const ProgramId Loader; + static const ProgramId Ncm; + static const ProgramId Pm; + static const ProgramId Sm; + static const ProgramId Boot; + static const ProgramId Usb; + static const ProgramId Tma; + static const ProgramId Boot2; + static const ProgramId Settings; + static const ProgramId Bus; + static const ProgramId Bluetooth; + static const ProgramId Bcat; + static const ProgramId Dmnt; + static const ProgramId Friends; + static const ProgramId Nifm; + static const ProgramId Ptm; + static const ProgramId Shell; + static const ProgramId BsdSockets; + static const ProgramId Hid; + static const ProgramId Audio; + static const ProgramId LogManager; + static const ProgramId Wlan; + static const ProgramId Cs; + static const ProgramId Ldn; + static const ProgramId NvServices; + static const ProgramId Pcv; + static const ProgramId Ppc; + static const ProgramId NvnFlinger; + static const ProgramId Pcie; + static const ProgramId Account; + static const ProgramId Ns; + static const ProgramId Nfc; + static const ProgramId Psc; + static const ProgramId CapSrv; + static const ProgramId Am; + static const ProgramId Ssl; + static const ProgramId Nim; + static const ProgramId Cec; + static const ProgramId Tspm; + static const ProgramId Spl; + static const ProgramId Lbl; + static const ProgramId Btm; + static const ProgramId Erpt; + static const ProgramId Time; + static const ProgramId Vi; + static const ProgramId Pctl; + static const ProgramId Npns; + static const ProgramId Eupld; + static const ProgramId Arp; + static const ProgramId Glue; + static const ProgramId Eclct; + static const ProgramId Es; + static const ProgramId Fatal; + static const ProgramId Grc; + static const ProgramId Creport; + static const ProgramId Ro; + static const ProgramId Profiler; + static const ProgramId Sdb; + static const ProgramId Migration; + static const ProgramId Jit; + static const ProgramId JpegDec; + static const ProgramId SafeMode; + static const ProgramId Olsc; + static const ProgramId Dt; + static const ProgramId Nd; + static const ProgramId Ngct; - static const TitleId SystemEnd; + static const ProgramId SystemEnd; /* System Data Archives. */ - static const TitleId ArchiveStart; - static const TitleId ArchiveCertStore; - static const TitleId ArchiveErrorMessage; - static const TitleId ArchiveMiiModel; - static const TitleId ArchiveBrowserDll; - static const TitleId ArchiveHelp; - static const TitleId ArchiveSharedFont; - static const TitleId ArchiveNgWord; - static const TitleId ArchiveSsidList; - static const TitleId ArchiveDictionary; - static const TitleId ArchiveSystemVersion; - static const TitleId ArchiveAvatarImage; - static const TitleId ArchiveLocalNews; - static const TitleId ArchiveEula; - static const TitleId ArchiveUrlBlackList; - static const TitleId ArchiveTimeZoneBinar; - static const TitleId ArchiveCertStoreCruiser; - static const TitleId ArchiveFontNintendoExtension; - static const TitleId ArchiveFontStandard; - static const TitleId ArchiveFontKorean; - static const TitleId ArchiveFontChineseTraditional; - static const TitleId ArchiveFontChineseSimple; - static const TitleId ArchiveFontBfcpx; - static const TitleId ArchiveSystemUpdate; + static const ProgramId ArchiveStart; + static const ProgramId ArchiveCertStore; + static const ProgramId ArchiveErrorMessage; + static const ProgramId ArchiveMiiModel; + static const ProgramId ArchiveBrowserDll; + static const ProgramId ArchiveHelp; + static const ProgramId ArchiveSharedFont; + static const ProgramId ArchiveNgWord; + static const ProgramId ArchiveSsidList; + static const ProgramId ArchiveDictionary; + static const ProgramId ArchiveSystemVersion; + static const ProgramId ArchiveAvatarImage; + static const ProgramId ArchiveLocalNews; + static const ProgramId ArchiveEula; + static const ProgramId ArchiveUrlBlackList; + static const ProgramId ArchiveTimeZoneBinar; + static const ProgramId ArchiveCertStoreCruiser; + static const ProgramId ArchiveFontNintendoExtension; + static const ProgramId ArchiveFontStandard; + static const ProgramId ArchiveFontKorean; + static const ProgramId ArchiveFontChineseTraditional; + static const ProgramId ArchiveFontChineseSimple; + static const ProgramId ArchiveFontBfcpx; + static const ProgramId ArchiveSystemUpdate; - static const TitleId ArchiveFirmwareDebugSettings; - static const TitleId ArchiveBootImagePackage; - static const TitleId ArchiveBootImagePackageSafe; - static const TitleId ArchiveBootImagePackageExFat; - static const TitleId ArchiveBootImagePackageExFatSafe; - static const TitleId ArchiveFatalMessage; - static const TitleId ArchiveControllerIcon; - static const TitleId ArchivePlatformConfigIcosa; - static const TitleId ArchivePlatformConfigCopper; - static const TitleId ArchivePlatformConfigHoag; - static const TitleId ArchiveControllerFirmware; - static const TitleId ArchiveNgWord2; - static const TitleId ArchivePlatformConfigIcosaMariko; - static const TitleId ArchiveApplicationBlackList; - static const TitleId ArchiveRebootlessSystemUpdateVersion; - static const TitleId ArchiveContentActionTable; + static const ProgramId ArchiveFirmwareDebugSettings; + static const ProgramId ArchiveBootImagePackage; + static const ProgramId ArchiveBootImagePackageSafe; + static const ProgramId ArchiveBootImagePackageExFat; + static const ProgramId ArchiveBootImagePackageExFatSafe; + static const ProgramId ArchiveFatalMessage; + static const ProgramId ArchiveControllerIcon; + static const ProgramId ArchivePlatformConfigIcosa; + static const ProgramId ArchivePlatformConfigCopper; + static const ProgramId ArchivePlatformConfigHoag; + static const ProgramId ArchiveControllerFirmware; + static const ProgramId ArchiveNgWord2; + static const ProgramId ArchivePlatformConfigIcosaMariko; + static const ProgramId ArchiveApplicationBlackList; + static const ProgramId ArchiveRebootlessSystemUpdateVersion; + static const ProgramId ArchiveContentActionTable; - static const TitleId ArchiveEnd; + static const ProgramId ArchiveEnd; /* System Applets. */ - static const TitleId AppletStart; + static const ProgramId AppletStart; - static const TitleId AppletQlaunch; - static const TitleId AppletAuth; - static const TitleId AppletCabinet; - static const TitleId AppletController; - static const TitleId AppletDataErase; - static const TitleId AppletError; - static const TitleId AppletNetConnect; - static const TitleId AppletPlayerSelect; - static const TitleId AppletSwkbd; - static const TitleId AppletMiiEdit; - static const TitleId AppletWeb; - static const TitleId AppletShop; - static const TitleId AppletOverlayDisp; - static const TitleId AppletPhotoViewer; - static const TitleId AppletSet; - static const TitleId AppletOfflineWeb; - static const TitleId AppletLoginShare; - static const TitleId AppletWifiWebAuth; - static const TitleId AppletStarter; - static const TitleId AppletMyPage; - static const TitleId AppletPlayReport; - static const TitleId AppletMaintenanceMenu; + static const ProgramId AppletQlaunch; + static const ProgramId AppletAuth; + static const ProgramId AppletCabinet; + static const ProgramId AppletController; + static const ProgramId AppletDataErase; + static const ProgramId AppletError; + static const ProgramId AppletNetConnect; + static const ProgramId AppletPlayerSelect; + static const ProgramId AppletSwkbd; + static const ProgramId AppletMiiEdit; + static const ProgramId AppletWeb; + static const ProgramId AppletShop; + static const ProgramId AppletOverlayDisp; + static const ProgramId AppletPhotoViewer; + static const ProgramId AppletSet; + static const ProgramId AppletOfflineWeb; + static const ProgramId AppletLoginShare; + static const ProgramId AppletWifiWebAuth; + static const ProgramId AppletStarter; + static const ProgramId AppletMyPage; + static const ProgramId AppletPlayReport; + static const ProgramId AppletMaintenanceMenu; - static const TitleId AppletGift; - static const TitleId AppletDummyShop; - static const TitleId AppletUserMigration; - static const TitleId AppletEncounter; + static const ProgramId AppletGift; + static const ProgramId AppletDummyShop; + static const ProgramId AppletUserMigration; + static const ProgramId AppletEncounter; - static const TitleId AppletStory; + static const ProgramId AppletStory; - static const TitleId AppletEnd; + static const ProgramId AppletEnd; /* Debug Applets. */ @@ -201,168 +201,170 @@ namespace ams::ncm { /* Factory Setup. */ /* Applications. */ - static const TitleId ApplicationStart; - static const TitleId ApplicationEnd; + static const ProgramId ApplicationStart; + static const ProgramId ApplicationEnd; /* Atmosphere Extensions. */ - static const TitleId AtmosphereMitm; + static const ProgramId AtmosphereMitm; }; - /* Invalid Title ID. */ - inline constexpr const TitleId TitleId::Invalid = {}; + /* Invalid Program ID. */ + inline constexpr const ProgramId ProgramId::Invalid = {}; + + inline constexpr const ProgramId InvalidProgramId = ProgramId::Invalid; /* System Modules. */ - inline constexpr const TitleId TitleId::SystemStart = { 0x0100000000000000ul }; + inline constexpr const ProgramId ProgramId::SystemStart = { 0x0100000000000000ul }; - inline constexpr const TitleId TitleId::Fs = { 0x0100000000000000ul }; - inline constexpr const TitleId TitleId::Loader = { 0x0100000000000001ul }; - inline constexpr const TitleId TitleId::Ncm = { 0x0100000000000002ul }; - inline constexpr const TitleId TitleId::Pm = { 0x0100000000000003ul }; - inline constexpr const TitleId TitleId::Sm = { 0x0100000000000004ul }; - inline constexpr const TitleId TitleId::Boot = { 0x0100000000000005ul }; - inline constexpr const TitleId TitleId::Usb = { 0x0100000000000006ul }; - inline constexpr const TitleId TitleId::Tma = { 0x0100000000000007ul }; - inline constexpr const TitleId TitleId::Boot2 = { 0x0100000000000008ul }; - inline constexpr const TitleId TitleId::Settings = { 0x0100000000000009ul }; - inline constexpr const TitleId TitleId::Bus = { 0x010000000000000Aul }; - inline constexpr const TitleId TitleId::Bluetooth = { 0x010000000000000Bul }; - inline constexpr const TitleId TitleId::Bcat = { 0x010000000000000Cul }; - inline constexpr const TitleId TitleId::Dmnt = { 0x010000000000000Dul }; - inline constexpr const TitleId TitleId::Friends = { 0x010000000000000Eul }; - inline constexpr const TitleId TitleId::Nifm = { 0x010000000000000Ful }; - inline constexpr const TitleId TitleId::Ptm = { 0x0100000000000010ul }; - inline constexpr const TitleId TitleId::Shell = { 0x0100000000000011ul }; - inline constexpr const TitleId TitleId::BsdSockets = { 0x0100000000000012ul }; - inline constexpr const TitleId TitleId::Hid = { 0x0100000000000013ul }; - inline constexpr const TitleId TitleId::Audio = { 0x0100000000000014ul }; - inline constexpr const TitleId TitleId::LogManager = { 0x0100000000000015ul }; - inline constexpr const TitleId TitleId::Wlan = { 0x0100000000000016ul }; - inline constexpr const TitleId TitleId::Cs = { 0x0100000000000017ul }; - inline constexpr const TitleId TitleId::Ldn = { 0x0100000000000018ul }; - inline constexpr const TitleId TitleId::NvServices = { 0x0100000000000019ul }; - inline constexpr const TitleId TitleId::Pcv = { 0x010000000000001Aul }; - inline constexpr const TitleId TitleId::Ppc = { 0x010000000000001Bul }; - inline constexpr const TitleId TitleId::NvnFlinger = { 0x010000000000001Cul }; - inline constexpr const TitleId TitleId::Pcie = { 0x010000000000001Dul }; - inline constexpr const TitleId TitleId::Account = { 0x010000000000001Eul }; - inline constexpr const TitleId TitleId::Ns = { 0x010000000000001Ful }; - inline constexpr const TitleId TitleId::Nfc = { 0x0100000000000020ul }; - inline constexpr const TitleId TitleId::Psc = { 0x0100000000000021ul }; - inline constexpr const TitleId TitleId::CapSrv = { 0x0100000000000022ul }; - inline constexpr const TitleId TitleId::Am = { 0x0100000000000023ul }; - inline constexpr const TitleId TitleId::Ssl = { 0x0100000000000024ul }; - inline constexpr const TitleId TitleId::Nim = { 0x0100000000000025ul }; - inline constexpr const TitleId TitleId::Cec = { 0x0100000000000026ul }; - inline constexpr const TitleId TitleId::Tspm = { 0x0100000000000027ul }; - inline constexpr const TitleId TitleId::Spl = { 0x0100000000000028ul }; - inline constexpr const TitleId TitleId::Lbl = { 0x0100000000000029ul }; - inline constexpr const TitleId TitleId::Btm = { 0x010000000000002Aul }; - inline constexpr const TitleId TitleId::Erpt = { 0x010000000000002Bul }; - inline constexpr const TitleId TitleId::Time = { 0x010000000000002Cul }; - inline constexpr const TitleId TitleId::Vi = { 0x010000000000002Dul }; - inline constexpr const TitleId TitleId::Pctl = { 0x010000000000002Eul }; - inline constexpr const TitleId TitleId::Npns = { 0x010000000000002Ful }; - inline constexpr const TitleId TitleId::Eupld = { 0x0100000000000030ul }; - inline constexpr const TitleId TitleId::Arp = { 0x0100000000000031ul }; - inline constexpr const TitleId TitleId::Glue = { 0x0100000000000031ul }; - inline constexpr const TitleId TitleId::Eclct = { 0x0100000000000032ul }; - inline constexpr const TitleId TitleId::Es = { 0x0100000000000033ul }; - inline constexpr const TitleId TitleId::Fatal = { 0x0100000000000034ul }; - inline constexpr const TitleId TitleId::Grc = { 0x0100000000000035ul }; - inline constexpr const TitleId TitleId::Creport = { 0x0100000000000036ul }; - inline constexpr const TitleId TitleId::Ro = { 0x0100000000000037ul }; - inline constexpr const TitleId TitleId::Profiler = { 0x0100000000000038ul }; - inline constexpr const TitleId TitleId::Sdb = { 0x0100000000000039ul }; - inline constexpr const TitleId TitleId::Migration = { 0x010000000000003Aul }; - inline constexpr const TitleId TitleId::Jit = { 0x010000000000003Bul }; - inline constexpr const TitleId TitleId::JpegDec = { 0x010000000000003Cul }; - inline constexpr const TitleId TitleId::SafeMode = { 0x010000000000003Dul }; - inline constexpr const TitleId TitleId::Olsc = { 0x010000000000003Eul }; - inline constexpr const TitleId TitleId::Dt = { 0x010000000000003Ful }; - inline constexpr const TitleId TitleId::Nd = { 0x0100000000000040ul }; - inline constexpr const TitleId TitleId::Ngct = { 0x0100000000000041ul }; + inline constexpr const ProgramId ProgramId::Fs = { 0x0100000000000000ul }; + inline constexpr const ProgramId ProgramId::Loader = { 0x0100000000000001ul }; + inline constexpr const ProgramId ProgramId::Ncm = { 0x0100000000000002ul }; + inline constexpr const ProgramId ProgramId::Pm = { 0x0100000000000003ul }; + inline constexpr const ProgramId ProgramId::Sm = { 0x0100000000000004ul }; + inline constexpr const ProgramId ProgramId::Boot = { 0x0100000000000005ul }; + inline constexpr const ProgramId ProgramId::Usb = { 0x0100000000000006ul }; + inline constexpr const ProgramId ProgramId::Tma = { 0x0100000000000007ul }; + inline constexpr const ProgramId ProgramId::Boot2 = { 0x0100000000000008ul }; + inline constexpr const ProgramId ProgramId::Settings = { 0x0100000000000009ul }; + inline constexpr const ProgramId ProgramId::Bus = { 0x010000000000000Aul }; + inline constexpr const ProgramId ProgramId::Bluetooth = { 0x010000000000000Bul }; + inline constexpr const ProgramId ProgramId::Bcat = { 0x010000000000000Cul }; + inline constexpr const ProgramId ProgramId::Dmnt = { 0x010000000000000Dul }; + inline constexpr const ProgramId ProgramId::Friends = { 0x010000000000000Eul }; + inline constexpr const ProgramId ProgramId::Nifm = { 0x010000000000000Ful }; + inline constexpr const ProgramId ProgramId::Ptm = { 0x0100000000000010ul }; + inline constexpr const ProgramId ProgramId::Shell = { 0x0100000000000011ul }; + inline constexpr const ProgramId ProgramId::BsdSockets = { 0x0100000000000012ul }; + inline constexpr const ProgramId ProgramId::Hid = { 0x0100000000000013ul }; + inline constexpr const ProgramId ProgramId::Audio = { 0x0100000000000014ul }; + inline constexpr const ProgramId ProgramId::LogManager = { 0x0100000000000015ul }; + inline constexpr const ProgramId ProgramId::Wlan = { 0x0100000000000016ul }; + inline constexpr const ProgramId ProgramId::Cs = { 0x0100000000000017ul }; + inline constexpr const ProgramId ProgramId::Ldn = { 0x0100000000000018ul }; + inline constexpr const ProgramId ProgramId::NvServices = { 0x0100000000000019ul }; + inline constexpr const ProgramId ProgramId::Pcv = { 0x010000000000001Aul }; + inline constexpr const ProgramId ProgramId::Ppc = { 0x010000000000001Bul }; + inline constexpr const ProgramId ProgramId::NvnFlinger = { 0x010000000000001Cul }; + inline constexpr const ProgramId ProgramId::Pcie = { 0x010000000000001Dul }; + inline constexpr const ProgramId ProgramId::Account = { 0x010000000000001Eul }; + inline constexpr const ProgramId ProgramId::Ns = { 0x010000000000001Ful }; + inline constexpr const ProgramId ProgramId::Nfc = { 0x0100000000000020ul }; + inline constexpr const ProgramId ProgramId::Psc = { 0x0100000000000021ul }; + inline constexpr const ProgramId ProgramId::CapSrv = { 0x0100000000000022ul }; + inline constexpr const ProgramId ProgramId::Am = { 0x0100000000000023ul }; + inline constexpr const ProgramId ProgramId::Ssl = { 0x0100000000000024ul }; + inline constexpr const ProgramId ProgramId::Nim = { 0x0100000000000025ul }; + inline constexpr const ProgramId ProgramId::Cec = { 0x0100000000000026ul }; + inline constexpr const ProgramId ProgramId::Tspm = { 0x0100000000000027ul }; + inline constexpr const ProgramId ProgramId::Spl = { 0x0100000000000028ul }; + inline constexpr const ProgramId ProgramId::Lbl = { 0x0100000000000029ul }; + inline constexpr const ProgramId ProgramId::Btm = { 0x010000000000002Aul }; + inline constexpr const ProgramId ProgramId::Erpt = { 0x010000000000002Bul }; + inline constexpr const ProgramId ProgramId::Time = { 0x010000000000002Cul }; + inline constexpr const ProgramId ProgramId::Vi = { 0x010000000000002Dul }; + inline constexpr const ProgramId ProgramId::Pctl = { 0x010000000000002Eul }; + inline constexpr const ProgramId ProgramId::Npns = { 0x010000000000002Ful }; + inline constexpr const ProgramId ProgramId::Eupld = { 0x0100000000000030ul }; + inline constexpr const ProgramId ProgramId::Arp = { 0x0100000000000031ul }; + inline constexpr const ProgramId ProgramId::Glue = { 0x0100000000000031ul }; + inline constexpr const ProgramId ProgramId::Eclct = { 0x0100000000000032ul }; + inline constexpr const ProgramId ProgramId::Es = { 0x0100000000000033ul }; + inline constexpr const ProgramId ProgramId::Fatal = { 0x0100000000000034ul }; + inline constexpr const ProgramId ProgramId::Grc = { 0x0100000000000035ul }; + inline constexpr const ProgramId ProgramId::Creport = { 0x0100000000000036ul }; + inline constexpr const ProgramId ProgramId::Ro = { 0x0100000000000037ul }; + inline constexpr const ProgramId ProgramId::Profiler = { 0x0100000000000038ul }; + inline constexpr const ProgramId ProgramId::Sdb = { 0x0100000000000039ul }; + inline constexpr const ProgramId ProgramId::Migration = { 0x010000000000003Aul }; + inline constexpr const ProgramId ProgramId::Jit = { 0x010000000000003Bul }; + inline constexpr const ProgramId ProgramId::JpegDec = { 0x010000000000003Cul }; + inline constexpr const ProgramId ProgramId::SafeMode = { 0x010000000000003Dul }; + inline constexpr const ProgramId ProgramId::Olsc = { 0x010000000000003Eul }; + inline constexpr const ProgramId ProgramId::Dt = { 0x010000000000003Ful }; + inline constexpr const ProgramId ProgramId::Nd = { 0x0100000000000040ul }; + inline constexpr const ProgramId ProgramId::Ngct = { 0x0100000000000041ul }; - inline constexpr const TitleId TitleId::SystemEnd = { 0x01000000000007FFul }; + inline constexpr const ProgramId ProgramId::SystemEnd = { 0x01000000000007FFul }; /* System Data Archives. */ - inline constexpr const TitleId TitleId::ArchiveStart = { 0x0100000000000800ul }; - inline constexpr const TitleId TitleId::ArchiveCertStore = { 0x0100000000000800ul }; - inline constexpr const TitleId TitleId::ArchiveErrorMessage = { 0x0100000000000801ul }; - inline constexpr const TitleId TitleId::ArchiveMiiModel = { 0x0100000000000802ul }; - inline constexpr const TitleId TitleId::ArchiveBrowserDll = { 0x0100000000000803ul }; - inline constexpr const TitleId TitleId::ArchiveHelp = { 0x0100000000000804ul }; - inline constexpr const TitleId TitleId::ArchiveSharedFont = { 0x0100000000000805ul }; - inline constexpr const TitleId TitleId::ArchiveNgWord = { 0x0100000000000806ul }; - inline constexpr const TitleId TitleId::ArchiveSsidList = { 0x0100000000000807ul }; - inline constexpr const TitleId TitleId::ArchiveDictionary = { 0x0100000000000808ul }; - inline constexpr const TitleId TitleId::ArchiveSystemVersion = { 0x0100000000000809ul }; - inline constexpr const TitleId TitleId::ArchiveAvatarImage = { 0x010000000000080Aul }; - inline constexpr const TitleId TitleId::ArchiveLocalNews = { 0x010000000000080Bul }; - inline constexpr const TitleId TitleId::ArchiveEula = { 0x010000000000080Cul }; - inline constexpr const TitleId TitleId::ArchiveUrlBlackList = { 0x010000000000080Dul }; - inline constexpr const TitleId TitleId::ArchiveTimeZoneBinar = { 0x010000000000080Eul }; - inline constexpr const TitleId TitleId::ArchiveCertStoreCruiser = { 0x010000000000080Ful }; - inline constexpr const TitleId TitleId::ArchiveFontNintendoExtension = { 0x0100000000000810ul }; - inline constexpr const TitleId TitleId::ArchiveFontStandard = { 0x0100000000000811ul }; - inline constexpr const TitleId TitleId::ArchiveFontKorean = { 0x0100000000000812ul }; - inline constexpr const TitleId TitleId::ArchiveFontChineseTraditional = { 0x0100000000000813ul }; - inline constexpr const TitleId TitleId::ArchiveFontChineseSimple = { 0x0100000000000814ul }; - inline constexpr const TitleId TitleId::ArchiveFontBfcpx = { 0x0100000000000815ul }; - inline constexpr const TitleId TitleId::ArchiveSystemUpdate = { 0x0100000000000816ul }; + inline constexpr const ProgramId ProgramId::ArchiveStart = { 0x0100000000000800ul }; + inline constexpr const ProgramId ProgramId::ArchiveCertStore = { 0x0100000000000800ul }; + inline constexpr const ProgramId ProgramId::ArchiveErrorMessage = { 0x0100000000000801ul }; + inline constexpr const ProgramId ProgramId::ArchiveMiiModel = { 0x0100000000000802ul }; + inline constexpr const ProgramId ProgramId::ArchiveBrowserDll = { 0x0100000000000803ul }; + inline constexpr const ProgramId ProgramId::ArchiveHelp = { 0x0100000000000804ul }; + inline constexpr const ProgramId ProgramId::ArchiveSharedFont = { 0x0100000000000805ul }; + inline constexpr const ProgramId ProgramId::ArchiveNgWord = { 0x0100000000000806ul }; + inline constexpr const ProgramId ProgramId::ArchiveSsidList = { 0x0100000000000807ul }; + inline constexpr const ProgramId ProgramId::ArchiveDictionary = { 0x0100000000000808ul }; + inline constexpr const ProgramId ProgramId::ArchiveSystemVersion = { 0x0100000000000809ul }; + inline constexpr const ProgramId ProgramId::ArchiveAvatarImage = { 0x010000000000080Aul }; + inline constexpr const ProgramId ProgramId::ArchiveLocalNews = { 0x010000000000080Bul }; + inline constexpr const ProgramId ProgramId::ArchiveEula = { 0x010000000000080Cul }; + inline constexpr const ProgramId ProgramId::ArchiveUrlBlackList = { 0x010000000000080Dul }; + inline constexpr const ProgramId ProgramId::ArchiveTimeZoneBinar = { 0x010000000000080Eul }; + inline constexpr const ProgramId ProgramId::ArchiveCertStoreCruiser = { 0x010000000000080Ful }; + inline constexpr const ProgramId ProgramId::ArchiveFontNintendoExtension = { 0x0100000000000810ul }; + inline constexpr const ProgramId ProgramId::ArchiveFontStandard = { 0x0100000000000811ul }; + inline constexpr const ProgramId ProgramId::ArchiveFontKorean = { 0x0100000000000812ul }; + inline constexpr const ProgramId ProgramId::ArchiveFontChineseTraditional = { 0x0100000000000813ul }; + inline constexpr const ProgramId ProgramId::ArchiveFontChineseSimple = { 0x0100000000000814ul }; + inline constexpr const ProgramId ProgramId::ArchiveFontBfcpx = { 0x0100000000000815ul }; + inline constexpr const ProgramId ProgramId::ArchiveSystemUpdate = { 0x0100000000000816ul }; - inline constexpr const TitleId TitleId::ArchiveFirmwareDebugSettings = { 0x0100000000000818ul }; - inline constexpr const TitleId TitleId::ArchiveBootImagePackage = { 0x0100000000000819ul }; - inline constexpr const TitleId TitleId::ArchiveBootImagePackageSafe = { 0x010000000000081Aul }; - inline constexpr const TitleId TitleId::ArchiveBootImagePackageExFat = { 0x010000000000081Bul }; - inline constexpr const TitleId TitleId::ArchiveBootImagePackageExFatSafe = { 0x010000000000081Cul }; - inline constexpr const TitleId TitleId::ArchiveFatalMessage = { 0x010000000000081Dul }; - inline constexpr const TitleId TitleId::ArchiveControllerIcon = { 0x010000000000081Eul }; - inline constexpr const TitleId TitleId::ArchivePlatformConfigIcosa = { 0x010000000000081Ful }; - inline constexpr const TitleId TitleId::ArchivePlatformConfigCopper = { 0x0100000000000820ul }; - inline constexpr const TitleId TitleId::ArchivePlatformConfigHoag = { 0x0100000000000821ul }; - inline constexpr const TitleId TitleId::ArchiveControllerFirmware = { 0x0100000000000822ul }; - inline constexpr const TitleId TitleId::ArchiveNgWord2 = { 0x0100000000000823ul }; - inline constexpr const TitleId TitleId::ArchivePlatformConfigIcosaMariko = { 0x0100000000000824ul }; - inline constexpr const TitleId TitleId::ArchiveApplicationBlackList = { 0x0100000000000825ul }; - inline constexpr const TitleId TitleId::ArchiveRebootlessSystemUpdateVersion = { 0x0100000000000826ul }; - inline constexpr const TitleId TitleId::ArchiveContentActionTable = { 0x0100000000000827ul }; + inline constexpr const ProgramId ProgramId::ArchiveFirmwareDebugSettings = { 0x0100000000000818ul }; + inline constexpr const ProgramId ProgramId::ArchiveBootImagePackage = { 0x0100000000000819ul }; + inline constexpr const ProgramId ProgramId::ArchiveBootImagePackageSafe = { 0x010000000000081Aul }; + inline constexpr const ProgramId ProgramId::ArchiveBootImagePackageExFat = { 0x010000000000081Bul }; + inline constexpr const ProgramId ProgramId::ArchiveBootImagePackageExFatSafe = { 0x010000000000081Cul }; + inline constexpr const ProgramId ProgramId::ArchiveFatalMessage = { 0x010000000000081Dul }; + inline constexpr const ProgramId ProgramId::ArchiveControllerIcon = { 0x010000000000081Eul }; + inline constexpr const ProgramId ProgramId::ArchivePlatformConfigIcosa = { 0x010000000000081Ful }; + inline constexpr const ProgramId ProgramId::ArchivePlatformConfigCopper = { 0x0100000000000820ul }; + inline constexpr const ProgramId ProgramId::ArchivePlatformConfigHoag = { 0x0100000000000821ul }; + inline constexpr const ProgramId ProgramId::ArchiveControllerFirmware = { 0x0100000000000822ul }; + inline constexpr const ProgramId ProgramId::ArchiveNgWord2 = { 0x0100000000000823ul }; + inline constexpr const ProgramId ProgramId::ArchivePlatformConfigIcosaMariko = { 0x0100000000000824ul }; + inline constexpr const ProgramId ProgramId::ArchiveApplicationBlackList = { 0x0100000000000825ul }; + inline constexpr const ProgramId ProgramId::ArchiveRebootlessSystemUpdateVersion = { 0x0100000000000826ul }; + inline constexpr const ProgramId ProgramId::ArchiveContentActionTable = { 0x0100000000000827ul }; - inline constexpr const TitleId TitleId::ArchiveEnd = { 0x0100000000000FFFul }; + inline constexpr const ProgramId ProgramId::ArchiveEnd = { 0x0100000000000FFFul }; /* System Applets. */ - inline constexpr const TitleId TitleId::AppletStart = { 0x0100000000001000ul }; + inline constexpr const ProgramId ProgramId::AppletStart = { 0x0100000000001000ul }; - inline constexpr const TitleId TitleId::AppletQlaunch = { 0x0100000000001000ul }; - inline constexpr const TitleId TitleId::AppletAuth = { 0x0100000000001001ul }; - inline constexpr const TitleId TitleId::AppletCabinet = { 0x0100000000001002ul }; - inline constexpr const TitleId TitleId::AppletController = { 0x0100000000001003ul }; - inline constexpr const TitleId TitleId::AppletDataErase = { 0x0100000000001004ul }; - inline constexpr const TitleId TitleId::AppletError = { 0x0100000000001005ul }; - inline constexpr const TitleId TitleId::AppletNetConnect = { 0x0100000000001006ul }; - inline constexpr const TitleId TitleId::AppletPlayerSelect = { 0x0100000000001007ul }; - inline constexpr const TitleId TitleId::AppletSwkbd = { 0x0100000000001008ul }; - inline constexpr const TitleId TitleId::AppletMiiEdit = { 0x0100000000001009ul }; - inline constexpr const TitleId TitleId::AppletWeb = { 0x010000000000100Aul }; - inline constexpr const TitleId TitleId::AppletShop = { 0x010000000000100Bul }; - inline constexpr const TitleId TitleId::AppletOverlayDisp = { 0x010000000000100Cul }; - inline constexpr const TitleId TitleId::AppletPhotoViewer = { 0x010000000000100Dul }; - inline constexpr const TitleId TitleId::AppletSet = { 0x010000000000100Eul }; - inline constexpr const TitleId TitleId::AppletOfflineWeb = { 0x010000000000100Ful }; - inline constexpr const TitleId TitleId::AppletLoginShare = { 0x0100000000001010ul }; - inline constexpr const TitleId TitleId::AppletWifiWebAuth = { 0x0100000000001011ul }; - inline constexpr const TitleId TitleId::AppletStarter = { 0x0100000000001012ul }; - inline constexpr const TitleId TitleId::AppletMyPage = { 0x0100000000001013ul }; - inline constexpr const TitleId TitleId::AppletPlayReport = { 0x0100000000001014ul }; - inline constexpr const TitleId TitleId::AppletMaintenanceMenu = { 0x0100000000001015ul }; + inline constexpr const ProgramId ProgramId::AppletQlaunch = { 0x0100000000001000ul }; + inline constexpr const ProgramId ProgramId::AppletAuth = { 0x0100000000001001ul }; + inline constexpr const ProgramId ProgramId::AppletCabinet = { 0x0100000000001002ul }; + inline constexpr const ProgramId ProgramId::AppletController = { 0x0100000000001003ul }; + inline constexpr const ProgramId ProgramId::AppletDataErase = { 0x0100000000001004ul }; + inline constexpr const ProgramId ProgramId::AppletError = { 0x0100000000001005ul }; + inline constexpr const ProgramId ProgramId::AppletNetConnect = { 0x0100000000001006ul }; + inline constexpr const ProgramId ProgramId::AppletPlayerSelect = { 0x0100000000001007ul }; + inline constexpr const ProgramId ProgramId::AppletSwkbd = { 0x0100000000001008ul }; + inline constexpr const ProgramId ProgramId::AppletMiiEdit = { 0x0100000000001009ul }; + inline constexpr const ProgramId ProgramId::AppletWeb = { 0x010000000000100Aul }; + inline constexpr const ProgramId ProgramId::AppletShop = { 0x010000000000100Bul }; + inline constexpr const ProgramId ProgramId::AppletOverlayDisp = { 0x010000000000100Cul }; + inline constexpr const ProgramId ProgramId::AppletPhotoViewer = { 0x010000000000100Dul }; + inline constexpr const ProgramId ProgramId::AppletSet = { 0x010000000000100Eul }; + inline constexpr const ProgramId ProgramId::AppletOfflineWeb = { 0x010000000000100Ful }; + inline constexpr const ProgramId ProgramId::AppletLoginShare = { 0x0100000000001010ul }; + inline constexpr const ProgramId ProgramId::AppletWifiWebAuth = { 0x0100000000001011ul }; + inline constexpr const ProgramId ProgramId::AppletStarter = { 0x0100000000001012ul }; + inline constexpr const ProgramId ProgramId::AppletMyPage = { 0x0100000000001013ul }; + inline constexpr const ProgramId ProgramId::AppletPlayReport = { 0x0100000000001014ul }; + inline constexpr const ProgramId ProgramId::AppletMaintenanceMenu = { 0x0100000000001015ul }; - inline constexpr const TitleId TitleId::AppletGift = { 0x010000000000101Aul }; - inline constexpr const TitleId TitleId::AppletDummyShop = { 0x010000000000101Bul }; - inline constexpr const TitleId TitleId::AppletUserMigration = { 0x010000000000101Cul }; - inline constexpr const TitleId TitleId::AppletEncounter = { 0x010000000000101Dul }; + inline constexpr const ProgramId ProgramId::AppletGift = { 0x010000000000101Aul }; + inline constexpr const ProgramId ProgramId::AppletDummyShop = { 0x010000000000101Bul }; + inline constexpr const ProgramId ProgramId::AppletUserMigration = { 0x010000000000101Cul }; + inline constexpr const ProgramId ProgramId::AppletEncounter = { 0x010000000000101Dul }; - inline constexpr const TitleId TitleId::AppletStory = { 0x0100000000001020ul }; + inline constexpr const ProgramId ProgramId::AppletStory = { 0x0100000000001020ul }; - inline constexpr const TitleId TitleId::AppletEnd = { 0x0100000000001FFFul }; + inline constexpr const ProgramId ProgramId::AppletEnd = { 0x0100000000001FFFul }; /* Debug Applets. */ @@ -371,64 +373,65 @@ namespace ams::ncm { /* Factory Setup. */ /* Applications. */ - inline constexpr const TitleId TitleId::ApplicationStart = { 0x0100000000010000ul }; - inline constexpr const TitleId TitleId::ApplicationEnd = { 0x01FFFFFFFFFFFFFFul }; + inline constexpr const ProgramId ProgramId::ApplicationStart = { 0x0100000000010000ul }; + inline constexpr const ProgramId ProgramId::ApplicationEnd = { 0x01FFFFFFFFFFFFFFul }; /* Atmosphere Extensions. */ - inline constexpr const TitleId TitleId::AtmosphereMitm = { 0x010041544D530000ul }; + inline constexpr const ProgramId ProgramId::AtmosphereMitm = { 0x010041544D530000ul }; - inline constexpr bool operator==(const TitleId &lhs, const TitleId &rhs) { + inline constexpr bool operator==(const ProgramId &lhs, const ProgramId &rhs) { return lhs.value == rhs.value; } - inline constexpr bool operator!=(const TitleId &lhs, const TitleId &rhs) { + inline constexpr bool operator!=(const ProgramId &lhs, const ProgramId &rhs) { return lhs.value != rhs.value; } - inline constexpr bool operator<(const TitleId &lhs, const TitleId &rhs) { + inline constexpr bool operator<(const ProgramId &lhs, const ProgramId &rhs) { return lhs.value < rhs.value; } - inline constexpr bool operator<=(const TitleId &lhs, const TitleId &rhs) { + inline constexpr bool operator<=(const ProgramId &lhs, const ProgramId &rhs) { return lhs.value <= rhs.value; } - inline constexpr bool operator>(const TitleId &lhs, const TitleId &rhs) { + inline constexpr bool operator>(const ProgramId &lhs, const ProgramId &rhs) { return lhs.value > rhs.value; } - inline constexpr bool operator>=(const TitleId &lhs, const TitleId &rhs) { + inline constexpr bool operator>=(const ProgramId &lhs, const ProgramId &rhs) { return lhs.value >= rhs.value; } - inline constexpr bool IsSystemTitleId(const TitleId &title_id) { - return TitleId::SystemStart <= title_id && title_id <= TitleId::SystemEnd; + inline constexpr bool IsSystemProgramId(const ProgramId &program_id) { + return ProgramId::SystemStart <= program_id && program_id <= ProgramId::SystemEnd; } - inline constexpr bool IsArchiveTitleId(const TitleId &title_id) { - return TitleId::ArchiveStart <= title_id && title_id <= TitleId::ArchiveEnd; + inline constexpr bool IsArchiveProgramId(const ProgramId &program_id) { + return ProgramId::ArchiveStart <= program_id && program_id <= ProgramId::ArchiveEnd; } - inline constexpr bool IsAppletTitleId(const TitleId &title_id) { - return TitleId::AppletStart <= title_id && title_id <= TitleId::AppletEnd; + inline constexpr bool IsAppletProgramId(const ProgramId &program_id) { + return ProgramId::AppletStart <= program_id && program_id <= ProgramId::AppletEnd; } - inline constexpr bool IsApplicationTitleId(const TitleId &title_id) { - return TitleId::ApplicationStart <= title_id && title_id <= TitleId::ApplicationEnd; + inline constexpr bool IsApplicationProgramId(const ProgramId &program_id) { + return ProgramId::ApplicationStart <= program_id && program_id <= ProgramId::ApplicationEnd; } - static_assert(sizeof(TitleId) == sizeof(u64) && std::is_pod::value, "TitleId definition!"); + static_assert(sizeof(ProgramId) == sizeof(u64) && std::is_pod::value, "ProgramId definition!"); - /* Title Location. */ - struct TitleLocation { - TitleId title_id; + /* Program Location. */ + struct ProgramLocation { + ProgramId program_id; u8 storage_id; - static constexpr TitleLocation Make(TitleId title_id, StorageId storage_id) { - return { .title_id = title_id, .storage_id = static_cast(storage_id), }; + static constexpr ProgramLocation Make(ProgramId program_id, StorageId storage_id) { + return { .program_id = program_id, .storage_id = static_cast(storage_id), }; } }; - static_assert(sizeof(TitleLocation) == 0x10 && std::is_pod::value, "TitleLocation definition!"); + static_assert(sizeof(ProgramLocation) == 0x10 && std::is_pod::value, "ProgramLocation definition!"); + static_assert(sizeof(ProgramLocation) == sizeof(::NcmProgramLocation) && alignof(ProgramLocation) == alignof(::NcmProgramLocation), "ProgramLocation Libnx Compatibility"); } diff --git a/include/stratosphere/pm/pm_dmnt_api.hpp b/include/stratosphere/pm/pm_dmnt_api.hpp index 01e7063a..967dc28e 100644 --- a/include/stratosphere/pm/pm_dmnt_api.hpp +++ b/include/stratosphere/pm/pm_dmnt_api.hpp @@ -23,10 +23,10 @@ namespace ams::pm::dmnt { /* Debug Monitor API. */ Result StartProcess(os::ProcessId process_id); - Result GetProcessId(os::ProcessId *out_process_id, const ncm::TitleId title_id); + Result GetProcessId(os::ProcessId *out_process_id, const ncm::ProgramId program_id); Result GetApplicationProcessId(os::ProcessId *out_process_id); Result HookToCreateApplicationProcess(Handle *out_handle); - Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::TitleLocation *out_loc, os::ProcessId process_id); + Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::ProgramLocation *out_loc, os::ProcessId process_id); Result AtmosphereGetCurrentLimitInfo(u64 *out_current_value, u64 *out_limit_value, ResourceLimitGroup group, LimitableResource resource); } diff --git a/include/stratosphere/pm/pm_info_api.hpp b/include/stratosphere/pm/pm_info_api.hpp index 1fb5248a..cc803185 100644 --- a/include/stratosphere/pm/pm_info_api.hpp +++ b/include/stratosphere/pm/pm_info_api.hpp @@ -22,11 +22,11 @@ namespace ams::pm::info { /* Information API. */ - Result GetTitleId(ncm::TitleId *out_title_id, os::ProcessId process_id); - Result GetProcessId(os::ProcessId *out_process_id, ncm::TitleId title_id); - Result HasLaunchedTitle(bool *out, ncm::TitleId title_id); + Result GetProgramId(ncm::ProgramId *out_program_id, os::ProcessId process_id); + Result GetProcessId(os::ProcessId *out_process_id, ncm::ProgramId program_id); + Result HasLaunchedProgram(bool *out, ncm::ProgramId program_id); /* Information convenience API. */ - bool HasLaunchedTitle(ncm::TitleId title_id); + bool HasLaunchedProgram(ncm::ProgramId program_id); } diff --git a/include/stratosphere/pm/pm_shell_api.hpp b/include/stratosphere/pm/pm_shell_api.hpp index d513dff7..72ff790c 100644 --- a/include/stratosphere/pm/pm_shell_api.hpp +++ b/include/stratosphere/pm/pm_shell_api.hpp @@ -22,6 +22,6 @@ namespace ams::pm::shell { /* Shell API. */ - Result LaunchTitle(os::ProcessId *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags); + Result LaunchProgram(os::ProcessId *out_process_id, const ncm::ProgramLocation &loc, u32 launch_flags); } diff --git a/include/stratosphere/ro/ro_types.hpp b/include/stratosphere/ro/ro_types.hpp index ed039326..4259585e 100644 --- a/include/stratosphere/ro/ro_types.hpp +++ b/include/stratosphere/ro/ro_types.hpp @@ -37,13 +37,13 @@ namespace ams::ro { private: u32 magic; u8 reserved_04[0xC]; - u64 title_id_mask; - u64 title_id_pattern; + u64 program_id_mask; + u64 program_id_pattern; u8 reserved_20[0x10]; u8 modulus[0x100]; u8 fixed_key_signature[0x100]; u8 nrr_signature[0x100]; - ncm::TitleId title_id; + ncm::ProgramId program_id; u32 size; u8 type; /* 7.0.0+ */ u8 reserved_33D[3]; @@ -55,8 +55,8 @@ namespace ams::ro { return this->magic == Magic; } - bool IsTitleIdValid() const { - return (static_cast(this->title_id) & this->title_id_mask) == this->title_id_pattern; + bool IsProgramIdValid() const { + return (static_cast(this->program_id) & this->program_id_mask) == this->program_id_pattern; } ModuleType GetType() const { @@ -65,8 +65,8 @@ namespace ams::ro { return type; } - ncm::TitleId GetTitleId() const { - return this->title_id; + ncm::ProgramId GetProgramId() const { + return this->program_id; } u32 GetSize() const { diff --git a/include/stratosphere/sf/hipc/sf_hipc_server_manager.hpp b/include/stratosphere/sf/hipc/sf_hipc_server_manager.hpp index 4604a933..6ac45b03 100644 --- a/include/stratosphere/sf/hipc/sf_hipc_server_manager.hpp +++ b/include/stratosphere/sf/hipc/sf_hipc_server_manager.hpp @@ -104,9 +104,9 @@ namespace ams::sf::hipc { std::shared_ptr<::Service> forward_service = std::move(ServerSession::CreateForwardService()); /* Get mitm forward session. */ - os::ProcessId client_pid; - ncm::TitleId client_tid; - R_ASSERT(sm::mitm::AcknowledgeSession(forward_service.get(), &client_pid, &client_tid, this->service_name)); + os::ProcessId client_process_id; + ncm::ProgramId client_program_id; + R_ASSERT(sm::mitm::AcknowledgeSession(forward_service.get(), &client_process_id, &client_program_id, this->service_name)); *out_obj = std::move(cmif::ServiceObjectHolder(std::move(MakeShared(forward_service)))); *out_fsrv = std::move(forward_service); diff --git a/include/stratosphere/sf/sf_service_object.hpp b/include/stratosphere/sf/sf_service_object.hpp index 052154d6..38c730ef 100644 --- a/include/stratosphere/sf/sf_service_object.hpp +++ b/include/stratosphere/sf/sf_service_object.hpp @@ -26,11 +26,11 @@ namespace ams::sf { protected: std::shared_ptr<::Service> forward_service; os::ProcessId process_id; - ncm::TitleId title_id; + ncm::ProgramId program_id; public: - IMitmServiceObject(std::shared_ptr<::Service> &&s, os::ProcessId p, ncm::TitleId t) : forward_service(std::move(s)), process_id(p), title_id(t) { /* ... */ } + IMitmServiceObject(std::shared_ptr<::Service> &&s, os::ProcessId p, ncm::ProgramId r) : forward_service(std::move(s)), process_id(p), program_id(r) { /* ... */ } - static bool ShouldMitm(os::ProcessId process_id, ncm::TitleId title_id); + static bool ShouldMitm(os::ProcessId process_id, ncm::ProgramId program_id); }; template diff --git a/include/stratosphere/sm/sm_manager_api.hpp b/include/stratosphere/sm/sm_manager_api.hpp index ba76fcbc..a499da1d 100644 --- a/include/stratosphere/sm/sm_manager_api.hpp +++ b/include/stratosphere/sm/sm_manager_api.hpp @@ -23,7 +23,7 @@ namespace ams::sm::manager { /* Manager API. */ - Result RegisterProcess(os::ProcessId process_id, ncm::TitleId title_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size); + Result RegisterProcess(os::ProcessId process_id, ncm::ProgramId program_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size); Result UnregisterProcess(os::ProcessId process_id); /* Atmosphere extensions. */ diff --git a/include/stratosphere/sm/sm_mitm_api.hpp b/include/stratosphere/sm/sm_mitm_api.hpp index ecb1abbe..282f984c 100644 --- a/include/stratosphere/sm/sm_mitm_api.hpp +++ b/include/stratosphere/sm/sm_mitm_api.hpp @@ -25,7 +25,7 @@ namespace ams::sm::mitm { Result InstallMitm(Handle *out_port, Handle *out_query, ServiceName name); Result UninstallMitm(ServiceName name); Result DeclareFutureMitm(ServiceName name); - Result AcknowledgeSession(Service *out_service, os::ProcessId *out_pid, ncm::TitleId *out_tid, ServiceName name); + Result AcknowledgeSession(Service *out_service, os::ProcessId *out_process_id, ncm::ProgramId *out_program_id, ServiceName name); Result HasMitm(bool *out, ServiceName name); Result WaitMitm(ServiceName name); diff --git a/include/stratosphere/sm/sm_types.hpp b/include/stratosphere/sm/sm_types.hpp index 028f2a8b..7ee5fde1 100644 --- a/include/stratosphere/sm/sm_types.hpp +++ b/include/stratosphere/sm/sm_types.hpp @@ -56,10 +56,10 @@ namespace ams::sm { /* For Debug Monitor extensions. */ struct ServiceRecord { ServiceName service; - os::ProcessId owner_pid; + os::ProcessId owner_process_id; u64 max_sessions; - os::ProcessId mitm_pid; - os::ProcessId mitm_waiting_ack_pid; + os::ProcessId mitm_process_id; + os::ProcessId mitm_waiting_ack_process_id; bool is_light; bool mitm_waiting_ack; }; diff --git a/source/ams/ams_environment.cpp b/source/ams/ams_environment.cpp index 36a31d14..94cda326 100644 --- a/source/ams/ams_environment.cpp +++ b/source/ams/ams_environment.cpp @@ -34,7 +34,7 @@ namespace ams { } - extern ncm::TitleId CurrentTitleId; + extern ncm::ProgramId CurrentProgramId; void WEAK ExceptionHandler(FatalErrorContext *ctx) { R_ASSERT(amsBpcInitialize()); @@ -49,7 +49,7 @@ namespace ams { { ams_ctx.magic = FatalErrorContext::Magic; ams_ctx.error_desc = ctx->error_desc; - ams_ctx.title_id = static_cast(CurrentTitleId); + ams_ctx.program_id = static_cast(CurrentProgramId); for (size_t i = 0; i < FatalErrorContext::NumGprs; i++) { ams_ctx.gprs[i] = ctx->cpu_gprs[i].x; } diff --git a/source/boot2/boot2_api.cpp b/source/boot2/boot2_api.cpp index d12e4932..83cb69bc 100644 --- a/source/boot2/boot2_api.cpp +++ b/source/boot2/boot2_api.cpp @@ -22,101 +22,101 @@ namespace ams::boot2 { /* Launch lists. */ - /* psc, bus, pcv is the minimal set of required titles to get SD card. */ + /* psc, bus, pcv is the minimal set of required programs to get SD card. */ /* bus depends on pcie, and pcv depends on settings. */ - constexpr ncm::TitleId PreSdCardLaunchPrograms[] = { - ncm::TitleId::Psc, /* psc */ - ncm::TitleId::Pcie, /* pcie */ - ncm::TitleId::Bus, /* bus */ - ncm::TitleId::Settings, /* settings */ - ncm::TitleId::Pcv, /* pcv */ - ncm::TitleId::Usb, /* usb */ + constexpr ncm::ProgramId PreSdCardLaunchPrograms[] = { + ncm::ProgramId::Psc, /* psc */ + ncm::ProgramId::Pcie, /* pcie */ + ncm::ProgramId::Bus, /* bus */ + ncm::ProgramId::Settings, /* settings */ + ncm::ProgramId::Pcv, /* pcv */ + ncm::ProgramId::Usb, /* usb */ }; constexpr size_t NumPreSdCardLaunchPrograms = util::size(PreSdCardLaunchPrograms); - constexpr ncm::TitleId AdditionalLaunchPrograms[] = { - ncm::TitleId::Tma, /* tma */ - ncm::TitleId::Am, /* am */ - ncm::TitleId::NvServices, /* nvservices */ - ncm::TitleId::NvnFlinger, /* nvnflinger */ - ncm::TitleId::Vi, /* vi */ - ncm::TitleId::Ns, /* ns */ - ncm::TitleId::LogManager, /* lm */ - ncm::TitleId::Ppc, /* ppc */ - ncm::TitleId::Ptm, /* ptm */ - ncm::TitleId::Hid, /* hid */ - ncm::TitleId::Audio, /* audio */ - ncm::TitleId::Lbl, /* lbl */ - ncm::TitleId::Wlan, /* wlan */ - ncm::TitleId::Bluetooth, /* bluetooth */ - ncm::TitleId::BsdSockets, /* bsdsockets */ - ncm::TitleId::Nifm, /* nifm */ - ncm::TitleId::Ldn, /* ldn */ - ncm::TitleId::Account, /* account */ - ncm::TitleId::Friends, /* friends */ - ncm::TitleId::Nfc, /* nfc */ - ncm::TitleId::JpegDec, /* jpegdec */ - ncm::TitleId::CapSrv, /* capsrv */ - ncm::TitleId::Ssl, /* ssl */ - ncm::TitleId::Nim, /* nim */ - ncm::TitleId::Bcat, /* bcat */ - ncm::TitleId::Erpt, /* erpt */ - ncm::TitleId::Es, /* es */ - ncm::TitleId::Pctl, /* pctl */ - ncm::TitleId::Btm, /* btm */ - ncm::TitleId::Eupld, /* eupld */ - ncm::TitleId::Glue, /* glue */ - /* ncm::TitleId::Eclct, */ /* eclct */ /* Skip launching error collection in Atmosphere to lessen telemetry. */ - ncm::TitleId::Npns, /* npns */ - ncm::TitleId::Fatal, /* fatal */ - ncm::TitleId::Ro, /* ro */ - ncm::TitleId::Profiler, /* profiler */ - ncm::TitleId::Sdb, /* sdb */ - ncm::TitleId::Migration, /* migration */ - ncm::TitleId::Grc, /* grc */ - ncm::TitleId::Olsc, /* olsc */ - ncm::TitleId::Ngct, /* ngct */ + constexpr ncm::ProgramId AdditionalLaunchPrograms[] = { + ncm::ProgramId::Tma, /* tma */ + ncm::ProgramId::Am, /* am */ + ncm::ProgramId::NvServices, /* nvservices */ + ncm::ProgramId::NvnFlinger, /* nvnflinger */ + ncm::ProgramId::Vi, /* vi */ + ncm::ProgramId::Ns, /* ns */ + ncm::ProgramId::LogManager, /* lm */ + ncm::ProgramId::Ppc, /* ppc */ + ncm::ProgramId::Ptm, /* ptm */ + ncm::ProgramId::Hid, /* hid */ + ncm::ProgramId::Audio, /* audio */ + ncm::ProgramId::Lbl, /* lbl */ + ncm::ProgramId::Wlan, /* wlan */ + ncm::ProgramId::Bluetooth, /* bluetooth */ + ncm::ProgramId::BsdSockets, /* bsdsockets */ + ncm::ProgramId::Nifm, /* nifm */ + ncm::ProgramId::Ldn, /* ldn */ + ncm::ProgramId::Account, /* account */ + ncm::ProgramId::Friends, /* friends */ + ncm::ProgramId::Nfc, /* nfc */ + ncm::ProgramId::JpegDec, /* jpegdec */ + ncm::ProgramId::CapSrv, /* capsrv */ + ncm::ProgramId::Ssl, /* ssl */ + ncm::ProgramId::Nim, /* nim */ + ncm::ProgramId::Bcat, /* bcat */ + ncm::ProgramId::Erpt, /* erpt */ + ncm::ProgramId::Es, /* es */ + ncm::ProgramId::Pctl, /* pctl */ + ncm::ProgramId::Btm, /* btm */ + ncm::ProgramId::Eupld, /* eupld */ + ncm::ProgramId::Glue, /* glue */ + /* ncm::ProgramId::Eclct, */ /* eclct */ /* Skip launching error collection in Atmosphere to lessen telemetry. */ + ncm::ProgramId::Npns, /* npns */ + ncm::ProgramId::Fatal, /* fatal */ + ncm::ProgramId::Ro, /* ro */ + ncm::ProgramId::Profiler, /* profiler */ + ncm::ProgramId::Sdb, /* sdb */ + ncm::ProgramId::Migration, /* migration */ + ncm::ProgramId::Grc, /* grc */ + ncm::ProgramId::Olsc, /* olsc */ + ncm::ProgramId::Ngct, /* ngct */ }; constexpr size_t NumAdditionalLaunchPrograms = util::size(AdditionalLaunchPrograms); - constexpr ncm::TitleId AdditionalMaintenanceLaunchPrograms[] = { - ncm::TitleId::Tma, /* tma */ - ncm::TitleId::Am, /* am */ - ncm::TitleId::NvServices, /* nvservices */ - ncm::TitleId::NvnFlinger, /* nvnflinger */ - ncm::TitleId::Vi, /* vi */ - ncm::TitleId::Ns, /* ns */ - ncm::TitleId::LogManager, /* lm */ - ncm::TitleId::Ppc, /* ppc */ - ncm::TitleId::Ptm, /* ptm */ - ncm::TitleId::Hid, /* hid */ - ncm::TitleId::Audio, /* audio */ - ncm::TitleId::Lbl, /* lbl */ - ncm::TitleId::Wlan, /* wlan */ - ncm::TitleId::Bluetooth, /* bluetooth */ - ncm::TitleId::BsdSockets, /* bsdsockets */ - ncm::TitleId::Nifm, /* nifm */ - ncm::TitleId::Ldn, /* ldn */ - ncm::TitleId::Account, /* account */ - ncm::TitleId::Nfc, /* nfc */ - ncm::TitleId::JpegDec, /* jpegdec */ - ncm::TitleId::CapSrv, /* capsrv */ - ncm::TitleId::Ssl, /* ssl */ - ncm::TitleId::Nim, /* nim */ - ncm::TitleId::Erpt, /* erpt */ - ncm::TitleId::Es, /* es */ - ncm::TitleId::Pctl, /* pctl */ - ncm::TitleId::Btm, /* btm */ - ncm::TitleId::Glue, /* glue */ - /* ncm::TitleId::Eclct, */ /* eclct */ /* Skip launching error collection in Atmosphere to lessen telemetry. */ - ncm::TitleId::Fatal, /* fatal */ - ncm::TitleId::Ro, /* ro */ - ncm::TitleId::Profiler, /* profiler */ - ncm::TitleId::Sdb, /* sdb */ - ncm::TitleId::Migration, /* migration */ - ncm::TitleId::Grc, /* grc */ - ncm::TitleId::Olsc, /* olsc */ - ncm::TitleId::Ngct, /* ngct */ + constexpr ncm::ProgramId AdditionalMaintenanceLaunchPrograms[] = { + ncm::ProgramId::Tma, /* tma */ + ncm::ProgramId::Am, /* am */ + ncm::ProgramId::NvServices, /* nvservices */ + ncm::ProgramId::NvnFlinger, /* nvnflinger */ + ncm::ProgramId::Vi, /* vi */ + ncm::ProgramId::Ns, /* ns */ + ncm::ProgramId::LogManager, /* lm */ + ncm::ProgramId::Ppc, /* ppc */ + ncm::ProgramId::Ptm, /* ptm */ + ncm::ProgramId::Hid, /* hid */ + ncm::ProgramId::Audio, /* audio */ + ncm::ProgramId::Lbl, /* lbl */ + ncm::ProgramId::Wlan, /* wlan */ + ncm::ProgramId::Bluetooth, /* bluetooth */ + ncm::ProgramId::BsdSockets, /* bsdsockets */ + ncm::ProgramId::Nifm, /* nifm */ + ncm::ProgramId::Ldn, /* ldn */ + ncm::ProgramId::Account, /* account */ + ncm::ProgramId::Nfc, /* nfc */ + ncm::ProgramId::JpegDec, /* jpegdec */ + ncm::ProgramId::CapSrv, /* capsrv */ + ncm::ProgramId::Ssl, /* ssl */ + ncm::ProgramId::Nim, /* nim */ + ncm::ProgramId::Erpt, /* erpt */ + ncm::ProgramId::Es, /* es */ + ncm::ProgramId::Pctl, /* pctl */ + ncm::ProgramId::Btm, /* btm */ + ncm::ProgramId::Glue, /* glue */ + /* ncm::ProgramId::Eclct, */ /* eclct */ /* Skip launching error collection in Atmosphere to lessen telemetry. */ + ncm::ProgramId::Fatal, /* fatal */ + ncm::ProgramId::Ro, /* ro */ + ncm::ProgramId::Profiler, /* profiler */ + ncm::ProgramId::Sdb, /* sdb */ + ncm::ProgramId::Migration, /* migration */ + ncm::ProgramId::Grc, /* grc */ + ncm::ProgramId::Olsc, /* olsc */ + ncm::ProgramId::Ngct, /* ngct */ }; constexpr size_t NumAdditionalMaintenanceLaunchPrograms = util::size(AdditionalMaintenanceLaunchPrograms); @@ -134,12 +134,12 @@ namespace ams::boot2 { return c == '\r' || c == '\n'; } - void LaunchTitle(os::ProcessId *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags) { + void LaunchProgram(os::ProcessId *out_process_id, const ncm::ProgramLocation &loc, u32 launch_flags) { os::ProcessId process_id = os::InvalidProcessId; /* Launch, lightly validate result. */ { - const auto launch_result = pm::shell::LaunchTitle(&process_id, loc, launch_flags); + const auto launch_result = pm::shell::LaunchProgram(&process_id, loc, launch_flags); AMS_ASSERT(!(svc::ResultOutOfResource::Includes(launch_result))); AMS_ASSERT(!(svc::ResultOutOfMemory::Includes(launch_result))); AMS_ASSERT(!(svc::ResultLimitReached::Includes(launch_result))); @@ -150,9 +150,9 @@ namespace ams::boot2 { } } - void LaunchList(const ncm::TitleId *launch_list, size_t num_entries) { + void LaunchList(const ncm::ProgramId *launch_list, size_t num_entries) { for (size_t i = 0; i < num_entries; i++) { - LaunchTitle(nullptr, ncm::TitleLocation::Make(launch_list[i], ncm::StorageId::NandSystem), 0); + LaunchProgram(nullptr, ncm::ProgramLocation::Make(launch_list[i], ncm::StorageId::NandSystem), 0); } } @@ -190,35 +190,35 @@ namespace ams::boot2 { } template - void IterateOverFlaggedTitlesOnSdCard(F f) { - /* Validate that the titles directory exists. */ - DIR *titles_dir = opendir("sdmc:/atmosphere/titles"); - if (titles_dir == nullptr) { + void IterateOverFlaggedProgramsOnSdCard(F f) { + /* Validate that the contents directory exists. */ + DIR *contents_dir = opendir("sdmc:/atmosphere/contents"); + if (contents_dir == nullptr) { return; } - ON_SCOPE_EXIT { closedir(titles_dir); }; + ON_SCOPE_EXIT { closedir(contents_dir); }; - /* Iterate over entries in the titles directory */ + /* Iterate over entries in the contents directory */ struct dirent *ent; - while ((ent = readdir(titles_dir)) != nullptr) { - /* Check that the subdirectory can be converted to a title id. */ - if (std::strlen(ent->d_name) == 2 * sizeof(ncm::TitleId) && IsHexadecimal(ent->d_name)) { - /* Check if we've already launched the title. */ - ncm::TitleId title_id{std::strtoul(ent->d_name, nullptr, 16)}; + while ((ent = readdir(contents_dir)) != nullptr) { + /* Check that the subdirectory can be converted to a program id. */ + if (std::strlen(ent->d_name) == 2 * sizeof(ncm::ProgramId) && IsHexadecimal(ent->d_name)) { + /* Check if we've already launched the program. */ + ncm::ProgramId program_id{std::strtoul(ent->d_name, nullptr, 16)}; - /* Check if the title is flagged. */ - if (!cfg::HasTitleSpecificFlag(title_id, "boot2")) { + /* Check if the program is flagged. */ + if (!cfg::HasContentSpecificFlag(program_id, "boot2")) { continue; } /* Call the iteration callback. */ - f(title_id); + f(program_id); } } } void DetectAndDeclareFutureMitms() { - IterateOverFlaggedTitlesOnSdCard([](ncm::TitleId title_id) { + IterateOverFlaggedProgramsOnSdCard([](ncm::ProgramId program_id) { /* When we find a flagged program, check if it has a mitm list. */ char mitm_list[0x400]; size_t mitm_list_size = 0; @@ -226,7 +226,7 @@ namespace ams::boot2 { /* Read the mitm list off the SD card. */ { char path[FS_MAX_PATH]; - std::snprintf(mitm_list, sizeof(mitm_list), "sdmc:/atmosphere/titles/%016lx/mitm.lst", static_cast(title_id)); + std::snprintf(mitm_list, sizeof(mitm_list), "sdmc:/atmosphere/contents/%016lx/mitm.lst", static_cast(program_id)); FILE *f = fopen(path, "rb"); if (f == nullptr) { return; @@ -278,14 +278,14 @@ namespace ams::boot2 { } void LaunchFlaggedProgramsOnSdCard() { - IterateOverFlaggedTitlesOnSdCard([](ncm::TitleId title_id) { - /* Check if we've already launched the title. */ - if (pm::info::HasLaunchedTitle(title_id)) { + IterateOverFlaggedProgramsOnSdCard([](ncm::ProgramId program_id) { + /* Check if we've already launched the program. */ + if (pm::info::HasLaunchedProgram(program_id)) { return; } - /* Launch the title. */ - LaunchTitle(nullptr, ncm::TitleLocation::Make(title_id, ncm::StorageId::None), 0); + /* Launch the program. */ + LaunchProgram(nullptr, ncm::ProgramLocation::Make(program_id, ncm::StorageId::None), 0); }); } @@ -314,7 +314,7 @@ namespace ams::boot2 { } /* Launch Atmosphere boot2, using FsStorageId_None to force SD card boot. */ - LaunchTitle(nullptr, ncm::TitleLocation::Make(ncm::TitleId::Boot2, ncm::StorageId::None), 0); + LaunchProgram(nullptr, ncm::ProgramLocation::Make(ncm::ProgramId::Boot2, ncm::StorageId::None), 0); } void LaunchPostSdCardBootPrograms() { @@ -327,7 +327,7 @@ namespace ams::boot2 { } /* Launch Atmosphere dmnt, using FsStorageId_None to force SD card boot. */ - LaunchTitle(nullptr, ncm::TitleLocation::Make(ncm::TitleId::Dmnt, ncm::StorageId::None), 0); + LaunchProgram(nullptr, ncm::ProgramLocation::Make(ncm::ProgramId::Dmnt, ncm::StorageId::None), 0); /* Check for and forward declare non-atmosphere mitm modules. */ DetectAndDeclareFutureMitms(); @@ -337,7 +337,7 @@ namespace ams::boot2 { LaunchList(AdditionalMaintenanceLaunchPrograms, NumAdditionalMaintenanceLaunchPrograms); /* Starting in 7.0.0, npns is launched during maintenance boot. */ if (hos::GetVersion() >= hos::Version_700) { - LaunchTitle(nullptr, ncm::TitleLocation::Make(ncm::TitleId::Npns, ncm::StorageId::NandSystem), 0); + LaunchProgram(nullptr, ncm::ProgramLocation::Make(ncm::ProgramId::Npns, ncm::StorageId::NandSystem), 0); } } else { LaunchList(AdditionalLaunchPrograms, NumAdditionalLaunchPrograms); diff --git a/source/cfg/cfg_flags.cpp b/source/cfg/cfg_flags.cpp index e5d70ed8..2f29a865 100644 --- a/source/cfg/cfg_flags.cpp +++ b/source/cfg/cfg_flags.cpp @@ -47,20 +47,20 @@ namespace ams::cfg { } /* Flag utilities. */ - bool HasFlag(ncm::TitleId title_id, const char *flag) { - return HasTitleSpecificFlag(title_id, flag) || (IsHblTitleId(title_id) && HasHblFlag(flag)); + bool HasFlag(ncm::ProgramId program_id, const char *flag) { + return HasContentSpecificFlag(program_id, flag) || (IsHblProgramId(program_id) && HasHblFlag(flag)); } - bool HasTitleSpecificFlag(ncm::TitleId title_id, const char *flag) { - char title_flag[FS_MAX_PATH]; - std::snprintf(title_flag, sizeof(title_flag) - 1, "/atmosphere/titles/%016lx/flags/%s.flag", static_cast(title_id), flag); - return HasFlagFile(title_flag); + bool HasContentSpecificFlag(ncm::ProgramId program_id, const char *flag) { + char content_flag[FS_MAX_PATH]; + std::snprintf(content_flag, sizeof(content_flag) - 1, "/atmosphere/contents/%016lx/flags/%s.flag", static_cast(program_id), flag); + return HasFlagFile(content_flag); } bool HasGlobalFlag(const char *flag) { - char title_flag[FS_MAX_PATH]; - std::snprintf(title_flag, sizeof(title_flag) - 1, "/atmosphere/flags/%s.flag", flag); - return HasFlagFile(title_flag); + char global_flag[FS_MAX_PATH]; + std::snprintf(global_flag, sizeof(global_flag) - 1, "/atmosphere/flags/%s.flag", flag); + return HasFlagFile(global_flag); } bool HasHblFlag(const char *flag) { diff --git a/source/cfg/cfg_override.cpp b/source/cfg/cfg_override.cpp index 2c170674..f407b8d5 100644 --- a/source/cfg/cfg_override.cpp +++ b/source/cfg/cfg_override.cpp @@ -28,11 +28,11 @@ namespace ams::cfg { struct HblOverrideConfig { OverrideKey override_key; - ncm::TitleId title_id; + ncm::ProgramId program_id; bool override_any_app; }; - struct TitleSpecificOverrideConfig { + struct ContentSpecificOverrideConfig { OverrideKey override_key; OverrideKey cheat_enable_key; }; @@ -53,7 +53,7 @@ namespace ams::cfg { .key_combination = KEY_R, .override_by_default = false, }, - .title_id = ncm::TitleId::AppletPhotoViewer, + .program_id = ncm::ProgramId::AppletPhotoViewer, .override_any_app = true, }; @@ -114,10 +114,11 @@ namespace ams::cfg { int LoaderIniHandler(void *user, const char *section, const char *name, const char *value) { /* Taken and modified, with love, from Rajkosto's implementation. */ if (strcasecmp(section, "hbl_config") == 0) { - if (strcasecmp(name, "title_id") == 0) { - u64 override_tid = strtoul(value, NULL, 16); - if (override_tid != 0) { - g_hbl_override_config.title_id = {override_tid}; + /* TODO: Consider deprecating "title_id" string in the future." */ + if (strcasecmp(name, "program_id") == 0 || strcasecmp(name, "title_id") == 0) { + u64 override_program_id = strtoul(value, NULL, 16); + if (override_program_id != 0) { + g_hbl_override_config.program_id = {override_program_id}; } } else if (strcasecmp(name, "path") == 0) { while (*value == '/' || *value == '\\') { @@ -148,8 +149,8 @@ namespace ams::cfg { return 1; } - int TitleSpecificIniHandler(void *user, const char *section, const char *name, const char *value) { - TitleSpecificOverrideConfig *config = reinterpret_cast(user); + int ContentSpecificIniHandler(void *user, const char *section, const char *name, const char *value) { + ContentSpecificOverrideConfig *config = reinterpret_cast(user); if (strcasecmp(section, "override_config") == 0) { if (strcasecmp(name, "override_key") == 0) { @@ -163,7 +164,7 @@ namespace ams::cfg { return 1; } - bool IsOverrideKeyHeld(OverrideKey *cfg) { + bool IsOverrideKeyHeld(const OverrideKey *cfg) { u64 kHeld = 0; bool keys_triggered = (R_SUCCEEDED(hid::GetKeysHeld(&kHeld)) && ((kHeld & cfg->key_combination) != 0)); return IsSdCardInitialized() && (cfg->override_by_default ^ keys_triggered); @@ -192,28 +193,28 @@ namespace ams::cfg { ParseIniFile(LoaderIniHandler, "/atmosphere/loader.ini", nullptr); } - TitleSpecificOverrideConfig GetTitleOverrideConfig(ncm::TitleId title_id) { + ContentSpecificOverrideConfig GetContentOverrideConfig(ncm::ProgramId program_id) { char path[FS_MAX_PATH]; - std::snprintf(path, sizeof(path) - 1, "/atmosphere/titles/%016lx/config.ini", static_cast(title_id)); + std::snprintf(path, sizeof(path) - 1, "/atmosphere/contents/%016lx/config.ini", static_cast(program_id)); - TitleSpecificOverrideConfig config = { + ContentSpecificOverrideConfig config = { .override_key = g_default_override_key, .cheat_enable_key = g_default_cheat_enable_key, }; - ParseIniFile(TitleSpecificIniHandler, path, &config); + ParseIniFile(ContentSpecificIniHandler, path, &config); return config; } } - bool IsHblOverrideKeyHeld(ncm::TitleId title_id) { + bool IsHblOverrideKeyHeld(ncm::ProgramId program_id) { /* If the SD card isn't initialized, we can't override. */ if (!IsSdCardInitialized()) { return false; } /* For system modules and anything launched before the home menu, always override. */ - if (title_id < ncm::TitleId::AppletStart || !pm::info::HasLaunchedTitle(ncm::TitleId::AppletQlaunch)) { + if (program_id < ncm::ProgramId::AppletStart || !pm::info::HasLaunchedProgram(ncm::ProgramId::AppletQlaunch)) { return true; } @@ -221,40 +222,40 @@ namespace ams::cfg { RefreshLoaderConfiguration(); /* Check HBL config. */ - return IsHblTitleId(title_id) && IsOverrideKeyHeld(&g_hbl_override_config.override_key); + return IsHblProgramId(program_id) && IsOverrideKeyHeld(&g_hbl_override_config.override_key); } - bool IsTitleOverrideKeyHeld(ncm::TitleId title_id) { + bool IsProgramOverrideKeyHeld(ncm::ProgramId program_id) { /* If the SD card isn't initialized, we can't override. */ if (!IsSdCardInitialized()) { return false; } /* For system modules and anything launched before the home menu, always override. */ - if (title_id < ncm::TitleId::AppletStart || !pm::info::HasLaunchedTitle(ncm::TitleId::AppletQlaunch)) { + if (program_id < ncm::ProgramId::AppletStart || !pm::info::HasLaunchedProgram(ncm::ProgramId::AppletQlaunch)) { return true; } /* Unconditionally refresh loader.ini contents. */ RefreshLoaderConfiguration(); - TitleSpecificOverrideConfig title_cfg = GetTitleOverrideConfig(title_id); - return IsOverrideKeyHeld(&title_cfg.override_key); + const auto content_cfg = GetContentOverrideConfig(program_id); + return IsOverrideKeyHeld(&content_cfg.override_key); } - void GetOverrideKeyHeldStatus(bool *out_hbl, bool *out_title, ncm::TitleId title_id) { + void GetOverrideKeyHeldStatus(bool *out_hbl, bool *out_program, ncm::ProgramId program_id) { /* If the SD card isn't initialized, we can't override. */ if (!IsSdCardInitialized()) { *out_hbl = false; - *out_title = false; + *out_program = false; return; } /* For system modules and anything launched before the home menu, always override. */ - if (title_id < ncm::TitleId::AppletStart || !pm::info::HasLaunchedTitle(ncm::TitleId::AppletQlaunch)) { + if (program_id < ncm::ProgramId::AppletStart || !pm::info::HasLaunchedProgram(ncm::ProgramId::AppletQlaunch)) { *out_hbl = false; - *out_title = true; + *out_program = true; return; } @@ -262,31 +263,31 @@ namespace ams::cfg { RefreshLoaderConfiguration(); /* Set HBL output. */ - *out_hbl = IsHblTitleId(title_id) && IsOverrideKeyHeld(&g_hbl_override_config.override_key); + *out_hbl = IsHblProgramId(program_id) && IsOverrideKeyHeld(&g_hbl_override_config.override_key); - /* Set title specific output. */ - TitleSpecificOverrideConfig title_cfg = GetTitleOverrideConfig(title_id); - *out_title = IsOverrideKeyHeld(&title_cfg.override_key); + /* Set content specific output. */ + const auto content_cfg = GetContentOverrideConfig(program_id); + *out_program = IsOverrideKeyHeld(&content_cfg.override_key); } - bool IsCheatEnableKeyHeld(ncm::TitleId title_id) { + bool IsCheatEnableKeyHeld(ncm::ProgramId program_id) { /* If the SD card isn't initialized, don't apply cheats. */ if (!IsSdCardInitialized()) { return false; } /* Don't apply cheats to HBL. */ - if (IsHblOverrideKeyHeld(title_id)) { + if (IsHblOverrideKeyHeld(program_id)) { return false; } - TitleSpecificOverrideConfig title_cfg = GetTitleOverrideConfig(title_id); - return IsOverrideKeyHeld(&title_cfg.cheat_enable_key); + const auto content_cfg = GetContentOverrideConfig(program_id); + return IsOverrideKeyHeld(&content_cfg.cheat_enable_key); } /* HBL Configuration utilities. */ - bool IsHblTitleId(ncm::TitleId title_id) { - return (g_hbl_override_config.override_any_app && ncm::IsApplicationTitleId(title_id)) || (title_id == g_hbl_override_config.title_id); + bool IsHblProgramId(ncm::ProgramId program_id) { + return (g_hbl_override_config.override_any_app && ncm::IsApplicationProgramId(program_id)) || (program_id == g_hbl_override_config.program_id); } const char *GetHblPath() { diff --git a/source/hid/hid_api.cpp b/source/hid/hid_api.cpp index 220cabd6..c9d60ac8 100644 --- a/source/hid/hid_api.cpp +++ b/source/hid/hid_api.cpp @@ -35,7 +35,7 @@ namespace ams::hid { Result EnsureHidInitialized() { if (!g_initialized_hid) { if (!serviceIsActive(hidGetServiceSession())) { - if (!pm::info::HasLaunchedTitle(ncm::TitleId::Hid)) { + if (!pm::info::HasLaunchedProgram(ncm::ProgramId::Hid)) { return MAKERESULT(Module_Libnx, LibnxError_InitFail_HID); } InitializeHid(); diff --git a/source/ldr/ldr_ams.c b/source/ldr/ldr_ams.c index 59ec1324..9353d0a2 100644 --- a/source/ldr/ldr_ams.c +++ b/source/ldr/ldr_ams.c @@ -17,17 +17,17 @@ #include #include "ldr_ams.h" -static Result _ldrAtmosphereHasLaunchedTitle(Service *srv, bool *out, u64 tid) { +static Result _ldrAtmosphereHasLaunchedProgram(Service *srv, bool *out, u64 program_id) { u8 tmp; - Result rc = serviceDispatchInOut(srv, 65000, tid, tmp); + Result rc = serviceDispatchInOut(srv, 65000, program_id, tmp); if (R_SUCCEEDED(rc) && out) *out = tmp & 1; return rc; } -Result ldrDmntAtmosphereHasLaunchedTitle(bool *out, u64 tid) { - return _ldrAtmosphereHasLaunchedTitle(ldrDmntGetServiceSession(), out, tid); +Result ldrDmntAtmosphereHasLaunchedProgram(bool *out, u64 program_id) { + return _ldrAtmosphereHasLaunchedProgram(ldrDmntGetServiceSession(), out, program_id); } -Result ldrPmAtmosphereHasLaunchedTitle(bool *out, u64 tid) { - return _ldrAtmosphereHasLaunchedTitle(ldrPmGetServiceSession(), out, tid); +Result ldrPmAtmosphereHasLaunchedProgram(bool *out, u64 program_id) { + return _ldrAtmosphereHasLaunchedProgram(ldrPmGetServiceSession(), out, program_id); } diff --git a/source/ldr/ldr_ams.h b/source/ldr/ldr_ams.h index 9ca154a2..eacee318 100644 --- a/source/ldr/ldr_ams.h +++ b/source/ldr/ldr_ams.h @@ -11,8 +11,8 @@ extern "C" { #endif -Result ldrPmAtmosphereHasLaunchedTitle(bool *out, u64 tid); -Result ldrDmntAtmosphereHasLaunchedTitle(bool *out, u64 tid); +Result ldrPmAtmosphereHasLaunchedProgram(bool *out, u64 program_id); +Result ldrDmntAtmosphereHasLaunchedProgram(bool *out, u64 program_id); #ifdef __cplusplus } diff --git a/source/ldr/ldr_pm_api.cpp b/source/ldr/ldr_pm_api.cpp index de73724d..6a81ad23 100644 --- a/source/ldr/ldr_pm_api.cpp +++ b/source/ldr/ldr_pm_api.cpp @@ -20,24 +20,24 @@ namespace ams::ldr::pm { /* Information API. */ Result CreateProcess(Handle *out, PinId pin_id, u32 flags, Handle reslimit) { - return ldrPmCreateProcess(flags, pin_id.value, reslimit, out); + return ldrPmCreateProcess(pin_id.value, flags, reslimit, out); } - Result GetProgramInfo(ProgramInfo *out, const ncm::TitleLocation &loc) { - return ldrPmGetProgramInfo(static_cast(loc.title_id), static_cast(loc.storage_id), reinterpret_cast(out)); + Result GetProgramInfo(ProgramInfo *out, const ncm::ProgramLocation &loc) { + return ldrPmGetProgramInfo(reinterpret_cast(&loc), reinterpret_cast(out)); } - Result PinTitle(PinId *out, const ncm::TitleLocation &loc) { + Result PinProgram(PinId *out, const ncm::ProgramLocation &loc) { static_assert(sizeof(*out) == sizeof(u64), "PinId definition!"); - return ldrPmRegisterTitle(static_cast(loc.title_id), static_cast(loc.storage_id), reinterpret_cast(out)); + return ldrPmPinProgram(reinterpret_cast(&loc), reinterpret_cast(out)); } - Result UnpinTitle(PinId pin_id) { - return ldrPmUnregisterTitle(pin_id.value); + Result UnpinProgram(PinId pin_id) { + return ldrPmUnpinProgram(pin_id.value); } - Result HasLaunchedTitle(bool *out, ncm::TitleId title_id) { - return ldrPmAtmosphereHasLaunchedTitle(out, static_cast(title_id)); + Result HasLaunchedProgram(bool *out, ncm::ProgramId program_id) { + return ldrPmAtmosphereHasLaunchedProgram(out, static_cast(program_id)); } } diff --git a/source/pm/pm_ams.c b/source/pm/pm_ams.c index aeb6bf1c..9beeef7e 100644 --- a/source/pm/pm_ams.c +++ b/source/pm/pm_ams.c @@ -17,32 +17,26 @@ #include #include "pm_ams.h" -Result pminfoAtmosphereGetProcessId(u64 *out_pid, u64 tid) { - return serviceDispatchInOut(pminfoGetServiceSession(), 65000, tid, *out_pid); +Result pminfoAtmosphereGetProcessId(u64 *out_pid, u64 program_id) { + return serviceDispatchInOut(pminfoGetServiceSession(), 65000, program_id, *out_pid); } -Result pminfoAtmosphereHasLaunchedTitle(bool *out, u64 tid) { +Result pminfoAtmosphereHasLaunchedProgram(bool *out, u64 program_id) { u8 tmp; - Result rc = serviceDispatchInOut(pminfoGetServiceSession(), 65001, tid, tmp); + Result rc = serviceDispatchInOut(pminfoGetServiceSession(), 65001, program_id, tmp); if (R_SUCCEEDED(rc) && out) *out = tmp & 1; return rc; } -Result pmdmntAtmosphereGetProcessInfo(Handle* handle_out, u64 *tid_out, u8 *sid_out, u64 pid) { - struct { - u64 title_id; - u8 storage_id; - } out; +Result pmdmntAtmosphereGetProcessInfo(Handle* handle_out, NcmProgramLocation *loc_out, u64 pid) { Handle tmp_handle; - Result rc = serviceDispatchInOut(pmdmntGetServiceSession(), 65000, pid, out, + Result rc = serviceDispatchInOut(pmdmntGetServiceSession(), 65000, pid, *loc_out, .out_handle_attrs = { SfOutHandleAttr_HipcCopy }, .out_handles = &tmp_handle, ); if (R_SUCCEEDED(rc)) { - if (tid_out) *tid_out = out.title_id; - if (sid_out) *sid_out = out.storage_id; if (handle_out) { *handle_out = tmp_handle; } else { diff --git a/source/pm/pm_ams.h b/source/pm/pm_ams.h index 11887971..5abcad08 100644 --- a/source/pm/pm_ams.h +++ b/source/pm/pm_ams.h @@ -11,10 +11,10 @@ extern "C" { #endif -Result pminfoAtmosphereGetProcessId(u64 *out_pid, u64 tid); -Result pminfoAtmosphereHasLaunchedTitle(bool *out, u64 tid); +Result pminfoAtmosphereGetProcessId(u64 *out_pid, u64 program_id); +Result pminfoAtmosphereHasLaunchedProgram(bool *out, u64 program_id); -Result pmdmntAtmosphereGetProcessInfo(Handle *out, u64 *tid_out, u8 *sid_out, u64 pid); +Result pmdmntAtmosphereGetProcessInfo(Handle *out, NcmProgramLocation *loc_out, u64 pid); Result pmdmntAtmosphereGetCurrentLimitInfo(u64 *out_cur, u64 *out_lim, u32 group, u32 resource); #ifdef __cplusplus diff --git a/source/pm/pm_dmnt_api.cpp b/source/pm/pm_dmnt_api.cpp index 717a632f..7087c83c 100644 --- a/source/pm/pm_dmnt_api.cpp +++ b/source/pm/pm_dmnt_api.cpp @@ -24,8 +24,8 @@ namespace ams::pm::dmnt { return pmdmntStartProcess(static_cast(process_id)); } - Result GetProcessId(os::ProcessId *out_process_id, const ncm::TitleId title_id) { - return pmdmntGetProcessId(reinterpret_cast(out_process_id), static_cast(title_id)); + Result GetProcessId(os::ProcessId *out_process_id, const ncm::ProgramId program_id) { + return pmdmntGetProcessId(reinterpret_cast(out_process_id), static_cast(program_id)); } Result GetApplicationProcessId(os::ProcessId *out_process_id) { @@ -39,10 +39,10 @@ namespace ams::pm::dmnt { return ResultSuccess(); } - Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::TitleLocation *out_loc, os::ProcessId process_id) { + Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::ProgramLocation *out_loc, os::ProcessId process_id) { *out_handle = INVALID_HANDLE; *out_loc = {}; - return pmdmntAtmosphereGetProcessInfo(out_handle, reinterpret_cast(&out_loc->title_id), &out_loc->storage_id, static_cast(process_id)); + return pmdmntAtmosphereGetProcessInfo(out_handle, reinterpret_cast(out_loc), static_cast(process_id)); } Result AtmosphereGetCurrentLimitInfo(u64 *out_current_value, u64 *out_limit_value, ResourceLimitGroup group, LimitableResource resource) { diff --git a/source/pm/pm_info_api.cpp b/source/pm/pm_info_api.cpp index d8c27d2a..969e9619 100644 --- a/source/pm/pm_info_api.cpp +++ b/source/pm/pm_info_api.cpp @@ -22,44 +22,45 @@ namespace ams::pm::info { /* Global lock. */ os::Mutex g_info_lock; - std::set g_cached_launched_titles; + /* TODO: Less memory-intensive storage? */ + std::set g_cached_launched_programs; } /* Information API. */ - Result GetTitleId(ncm::TitleId *out_title_id, os::ProcessId process_id) { + Result GetProgramId(ncm::ProgramId *out_program_id, os::ProcessId process_id) { std::scoped_lock lk(g_info_lock); - return pminfoGetProgramId(reinterpret_cast(out_title_id), static_cast(process_id)); + return pminfoGetProgramId(reinterpret_cast(out_program_id), static_cast(process_id)); } - Result GetProcessId(os::ProcessId *out_process_id, ncm::TitleId title_id) { + Result GetProcessId(os::ProcessId *out_process_id, ncm::ProgramId program_id) { std::scoped_lock lk(g_info_lock); - return pminfoAtmosphereGetProcessId(reinterpret_cast(out_process_id), static_cast(title_id)); + return pminfoAtmosphereGetProcessId(reinterpret_cast(out_process_id), static_cast(program_id)); } - Result WEAK HasLaunchedTitle(bool *out, ncm::TitleId title_id) { + Result WEAK HasLaunchedProgram(bool *out, ncm::ProgramId program_id) { std::scoped_lock lk(g_info_lock); - if (g_cached_launched_titles.find(static_cast(title_id)) != g_cached_launched_titles.end()) { + if (g_cached_launched_programs.find(static_cast(program_id)) != g_cached_launched_programs.end()) { *out = true; return ResultSuccess(); } bool has_launched = false; - R_TRY(pminfoAtmosphereHasLaunchedTitle(&has_launched, static_cast(title_id))); + R_TRY(pminfoAtmosphereHasLaunchedProgram(&has_launched, static_cast(program_id))); if (has_launched) { - g_cached_launched_titles.insert(static_cast(title_id)); + g_cached_launched_programs.insert(static_cast(program_id)); } *out = has_launched; return ResultSuccess(); } - bool HasLaunchedTitle(ncm::TitleId title_id) { + bool HasLaunchedProgram(ncm::ProgramId program_id) { bool has_launched = false; - R_ASSERT(HasLaunchedTitle(&has_launched, title_id)); + R_ASSERT(HasLaunchedProgram(&has_launched, program_id)); return has_launched; } diff --git a/source/pm/pm_shell_api.cpp b/source/pm/pm_shell_api.cpp index 513dc827..628f3df3 100644 --- a/source/pm/pm_shell_api.cpp +++ b/source/pm/pm_shell_api.cpp @@ -18,9 +18,9 @@ namespace ams::pm::shell { /* Shell API. */ - Result WEAK LaunchTitle(os::ProcessId *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags) { - static_assert(sizeof(ncm::TitleLocation) == sizeof(NcmProgramLocation)); - static_assert(alignof(ncm::TitleLocation) == alignof(NcmProgramLocation)); + Result WEAK LaunchProgram(os::ProcessId *out_process_id, const ncm::ProgramLocation &loc, u32 launch_flags) { + static_assert(sizeof(ncm::ProgramLocation) == sizeof(NcmProgramLocation)); + static_assert(alignof(ncm::ProgramLocation) == alignof(NcmProgramLocation)); return pmshellLaunchProgram(launch_flags, reinterpret_cast(&loc), reinterpret_cast(out_process_id)); } diff --git a/source/sm/sm_manager_api.cpp b/source/sm/sm_manager_api.cpp index 374428c4..41bb3e75 100644 --- a/source/sm/sm_manager_api.cpp +++ b/source/sm/sm_manager_api.cpp @@ -19,8 +19,8 @@ namespace ams::sm::manager { /* Manager API. */ - Result RegisterProcess(os::ProcessId process_id, ncm::TitleId title_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size) { - return smManagerAtmosphereRegisterProcess(static_cast(process_id), static_cast(title_id), acid, acid_size, aci, aci_size); + Result RegisterProcess(os::ProcessId process_id, ncm::ProgramId program_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size) { + return smManagerAtmosphereRegisterProcess(static_cast(process_id), static_cast(program_id), acid, acid_size, aci, aci_size); } Result UnregisterProcess(os::ProcessId process_id) { diff --git a/source/sm/sm_mitm_api.cpp b/source/sm/sm_mitm_api.cpp index 037cb6b3..d65b610f 100644 --- a/source/sm/sm_mitm_api.cpp +++ b/source/sm/sm_mitm_api.cpp @@ -36,9 +36,9 @@ namespace ams::sm::mitm { }); } - Result AcknowledgeSession(Service *out_service, os::ProcessId *out_pid, ncm::TitleId *out_tid, ServiceName name) { + Result AcknowledgeSession(Service *out_service, os::ProcessId *out_process_id, ncm::ProgramId *out_program_id, ServiceName name) { return impl::DoWithMitmSession([&]() { - return smAtmosphereMitmAcknowledgeSession(out_service, &out_pid->value, &out_tid->value, impl::ConvertName(name)); + return smAtmosphereMitmAcknowledgeSession(out_service, &out_process_id->value, &out_program_id->value, impl::ConvertName(name)); }); } diff --git a/source/updater/updater_api.cpp b/source/updater/updater_api.cpp index 7072e9da..2af61ee3 100644 --- a/source/updater/updater_api.cpp +++ b/source/updater/updater_api.cpp @@ -148,10 +148,10 @@ namespace ams::updater { NcmContentMetaKey *records = reinterpret_cast(work_buffer); - const auto title_type = GetNcmContentMetaType(mode); + const auto content_meta_type = GetNcmContentMetaType(mode); s32 written_entries; s32 total_entries; - R_TRY(ncmContentMetaDatabaseList(&meta_db, &total_entries, &written_entries, records, MaxContentMetas * sizeof(*records), title_type, 0, 0, UINT64_MAX, NcmContentInstallType_Full)); + R_TRY(ncmContentMetaDatabaseList(&meta_db, &total_entries, &written_entries, records, MaxContentMetas * sizeof(*records), content_meta_type, 0, 0, UINT64_MAX, NcmContentInstallType_Full)); if (total_entries <= 0) { return ResultBootImagePackageNotFound(); } @@ -165,14 +165,14 @@ namespace ams::updater { R_TRY(ncmContentMetaDatabaseGetAttributes(&meta_db, &records[i], &attr)); if (attr & NcmContentMetaAttribute_IncludesExFatDriver) { - *out_data_id = records[i].title_id; + *out_data_id = records[i].id; return ResultSuccess(); } } } /* If there's only one entry or no exfat entries, return that entry. */ - *out_data_id = records[0].title_id; + *out_data_id = records[0].id; return ResultSuccess(); }