diff --git a/include/stratosphere/pm/pm_dmnt_api.hpp b/include/stratosphere/pm/pm_dmnt_api.hpp index 607b4c43..a9dc3894 100644 --- a/include/stratosphere/pm/pm_dmnt_api.hpp +++ b/include/stratosphere/pm/pm_dmnt_api.hpp @@ -22,11 +22,11 @@ namespace sts::pm::dmnt { /* Debug Monitor API. */ - Result StartProcess(u64 process_id); - Result GetProcessId(u64 *out_process_id, const ncm::TitleId title_id); - Result GetApplicationProcessId(u64 *out_process_id); + Result StartProcess(os::ProcessId process_id); + Result GetProcessId(os::ProcessId *out_process_id, const ncm::TitleId title_id); + Result GetApplicationProcessId(os::ProcessId *out_process_id); Result HookToCreateApplicationProcess(Handle *out_handle); - Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::TitleLocation *out_loc, u64 process_id); + Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::TitleLocation *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 91b64e3e..ab330ba2 100644 --- a/include/stratosphere/pm/pm_info_api.hpp +++ b/include/stratosphere/pm/pm_info_api.hpp @@ -22,8 +22,8 @@ namespace sts::pm::info { /* Information API. */ - Result GetTitleId(ncm::TitleId *out_title_id, u64 process_id); - Result GetProcessId(u64 *out_process_id, ncm::TitleId title_id); + 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); /* Information convenience API. */ diff --git a/include/stratosphere/pm/pm_shell_api.hpp b/include/stratosphere/pm/pm_shell_api.hpp index f3f6002c..4277e3f8 100644 --- a/include/stratosphere/pm/pm_shell_api.hpp +++ b/include/stratosphere/pm/pm_shell_api.hpp @@ -22,6 +22,6 @@ namespace sts::pm::shell { /* Shell API. */ - Result LaunchTitle(u64 *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags); + Result LaunchTitle(os::ProcessId *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags); } diff --git a/include/stratosphere/pm/pm_types.hpp b/include/stratosphere/pm/pm_types.hpp index bb6eb29a..d7ad6ce6 100644 --- a/include/stratosphere/pm/pm_types.hpp +++ b/include/stratosphere/pm/pm_types.hpp @@ -16,6 +16,7 @@ #pragma once #include +#include "../os/os_common_types.hpp" namespace sts::pm { @@ -36,7 +37,7 @@ namespace sts::pm { struct ProcessEventInfo { u32 event; - u64 process_id; + os::ProcessId process_id; }; static_assert(sizeof(ProcessEventInfo) == 0x10 && std::is_pod::value, "ProcessEventInfo definition!"); diff --git a/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp b/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp index 2ea26530..e7167778 100644 --- a/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp +++ b/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp @@ -581,7 +581,7 @@ namespace sts::sf::impl { constexpr inline uintptr_t GetAddress() const { static_assert(Offset <= Size, "Offset <= Size"); static_assert(TypeSize <= Size, "TypeSize <= Size"); - static_assert(Offset + TypeSize <= Size, "Offset + TypeSize <= Size"); + static_assert(Offset + TypeSize <= Size || false, "Offset + TypeSize <= Size"); return reinterpret_cast(&data[Offset]); } @@ -944,7 +944,7 @@ namespace sts::sf::impl { } } else if constexpr (Info.arg_type == ArgumentType::OutData) { /* New out rawdata. */ - constexpr size_t Offset = CommandMeta::InDataOffsets[Info.out_raw_data_index]; + constexpr size_t Offset = CommandMeta::OutDataOffsets[Info.out_raw_data_index]; return T(out_raw_holder.template GetAddress()); } else if constexpr (Info.arg_type == ArgumentType::InHandle) { /* New InHandle. */ diff --git a/include/stratosphere/sm/sm_manager_api.hpp b/include/stratosphere/sm/sm_manager_api.hpp index c9e01f75..a2279fac 100644 --- a/include/stratosphere/sm/sm_manager_api.hpp +++ b/include/stratosphere/sm/sm_manager_api.hpp @@ -18,12 +18,13 @@ #include "sm_types.hpp" #include "../ncm/ncm_types.hpp" +#include "../os/os_common_types.hpp" namespace sts::sm::manager { /* Manager API. */ - Result RegisterProcess(u64 process_id, ncm::TitleId title_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size); - Result UnregisterProcess(u64 process_id); + 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 UnregisterProcess(os::ProcessId process_id); /* Atmosphere extensions. */ Result EndInitialDefers(); diff --git a/source/pm/pm_dmnt_api.cpp b/source/pm/pm_dmnt_api.cpp index 656669b6..3687eb00 100644 --- a/source/pm/pm_dmnt_api.cpp +++ b/source/pm/pm_dmnt_api.cpp @@ -23,16 +23,16 @@ namespace sts::pm::dmnt { /* Debug Monitor API. */ - Result StartProcess(u64 process_id) { - return pmdmntStartProcess(process_id); + Result StartProcess(os::ProcessId process_id) { + return pmdmntStartProcess(static_cast(process_id)); } - Result GetProcessId(u64 *out_process_id, const ncm::TitleId title_id) { - return pmdmntGetTitlePid(out_process_id, static_cast(title_id)); + Result GetProcessId(os::ProcessId *out_process_id, const ncm::TitleId title_id) { + return pmdmntGetTitlePid(reinterpret_cast(out_process_id), static_cast(title_id)); } - Result GetApplicationProcessId(u64 *out_process_id) { - return pmdmntGetApplicationPid(out_process_id); + Result GetApplicationProcessId(os::ProcessId *out_process_id) { + return pmdmntGetApplicationPid(reinterpret_cast(out_process_id)); } Result HookToCreateApplicationProcess(Handle *out_handle) { @@ -42,10 +42,10 @@ namespace sts::pm::dmnt { return ResultSuccess; } - Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::TitleLocation *out_loc, u64 process_id) { + Result AtmosphereGetProcessInfo(Handle *out_handle, ncm::TitleLocation *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, process_id); + return pmdmntAtmosphereGetProcessInfo(out_handle, reinterpret_cast(&out_loc->title_id), &out_loc->storage_id, 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 9f3c8b7d..9d8a8c83 100644 --- a/source/pm/pm_info_api.cpp +++ b/source/pm/pm_info_api.cpp @@ -31,16 +31,16 @@ namespace sts::pm::info { } /* Information API. */ - Result GetTitleId(ncm::TitleId *out_title_id, u64 process_id) { + Result GetTitleId(ncm::TitleId *out_title_id, os::ProcessId process_id) { std::scoped_lock lk(g_info_lock); - return pminfoGetTitleId(reinterpret_cast(out_title_id), process_id); + return pminfoGetTitleId(reinterpret_cast(out_title_id), static_cast(process_id)); } - Result GetProcessId(u64 *out_process_id, ncm::TitleId title_id) { + Result GetProcessId(os::ProcessId *out_process_id, ncm::TitleId title_id) { std::scoped_lock lk(g_info_lock); - return pminfoAtmosphereGetProcessId(out_process_id, static_cast(title_id)); + return pminfoAtmosphereGetProcessId(reinterpret_cast(out_process_id), static_cast(title_id)); } Result WEAK HasLaunchedTitle(bool *out, ncm::TitleId title_id) { diff --git a/source/pm/pm_shell_api.cpp b/source/pm/pm_shell_api.cpp index 09d5e4d2..f85eb1a3 100644 --- a/source/pm/pm_shell_api.cpp +++ b/source/pm/pm_shell_api.cpp @@ -21,8 +21,8 @@ namespace sts::pm::shell { /* Shell API. */ - Result WEAK LaunchTitle(u64 *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags) { - return pmshellLaunchProcess(launch_flags, static_cast(loc.title_id), loc.storage_id, out_process_id); + Result WEAK LaunchTitle(os::ProcessId *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags) { + return pmshellLaunchProcess(launch_flags, static_cast(loc.title_id), loc.storage_id, reinterpret_cast(out_process_id)); } } diff --git a/source/sm/sm_manager_api.cpp b/source/sm/sm_manager_api.cpp index 84dd4831..f83d041d 100644 --- a/source/sm/sm_manager_api.cpp +++ b/source/sm/sm_manager_api.cpp @@ -24,12 +24,12 @@ namespace sts::sm::manager { /* Manager API. */ - Result RegisterProcess(u64 process_id, ncm::TitleId title_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size) { - return smManagerAtmosphereRegisterProcess(process_id, static_cast(title_id), acid, acid_size, aci, aci_size); + 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 UnregisterProcess(u64 process_id) { - return smManagerUnregisterProcess(process_id); + Result UnregisterProcess(os::ProcessId process_id) { + return smManagerUnregisterProcess(static_cast(process_id)); } /* Atmosphere extensions. */