pm: update for new-ipc

This commit is contained in:
Michael Scire 2019-10-14 22:49:06 -07:00
parent d81f97862a
commit d1ae859891
10 changed files with 32 additions and 30 deletions

View File

@ -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);
}

View File

@ -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. */

View File

@ -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);
}

View File

@ -16,6 +16,7 @@
#pragma once
#include <switch.h>
#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<ProcessEventInfo>::value, "ProcessEventInfo definition!");

View File

@ -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<uintptr_t>(&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<Offset, T::TypeSize>());
} else if constexpr (Info.arg_type == ArgumentType::InHandle) {
/* New InHandle. */

View File

@ -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();

View File

@ -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<u64>(process_id));
}
Result GetProcessId(u64 *out_process_id, const ncm::TitleId title_id) {
return pmdmntGetTitlePid(out_process_id, static_cast<u64>(title_id));
Result GetProcessId(os::ProcessId *out_process_id, const ncm::TitleId title_id) {
return pmdmntGetTitlePid(reinterpret_cast<u64 *>(out_process_id), static_cast<u64>(title_id));
}
Result GetApplicationProcessId(u64 *out_process_id) {
return pmdmntGetApplicationPid(out_process_id);
Result GetApplicationProcessId(os::ProcessId *out_process_id) {
return pmdmntGetApplicationPid(reinterpret_cast<u64 *>(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<u64 *>(&out_loc->title_id), &out_loc->storage_id, process_id);
return pmdmntAtmosphereGetProcessInfo(out_handle, reinterpret_cast<u64 *>(&out_loc->title_id), &out_loc->storage_id, static_cast<u64>(process_id));
}
Result AtmosphereGetCurrentLimitInfo(u64 *out_current_value, u64 *out_limit_value, ResourceLimitGroup group, LimitableResource resource) {

View File

@ -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<u64 *>(out_title_id), process_id);
return pminfoGetTitleId(reinterpret_cast<u64 *>(out_title_id), static_cast<u64>(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<u64>(title_id));
return pminfoAtmosphereGetProcessId(reinterpret_cast<u64 *>(out_process_id), static_cast<u64>(title_id));
}
Result WEAK HasLaunchedTitle(bool *out, ncm::TitleId title_id) {

View File

@ -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<u64>(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<u64>(loc.title_id), loc.storage_id, reinterpret_cast<u64 *>(out_process_id));
}
}

View File

@ -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<u64>(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<u64>(process_id), static_cast<u64>(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<u64>(process_id));
}
/* Atmosphere extensions. */