sm: add api for forward declaring a service mitm

This commit is contained in:
Michael Scire 2019-07-04 12:50:10 -07:00
parent b9e5305273
commit 69dbb69e0b
4 changed files with 8 additions and 11 deletions

View File

@ -24,7 +24,7 @@ namespace sts::sm::mitm {
/* Mitm API. */
Result InstallMitm(Handle *out_port, Handle *out_query, ServiceName name);
Result UninstallMitm(ServiceName name);
Result AssociateProcessIdAndTitleId(u64 process_id, u64 title_id);
Result DeclareFutureMitm(ServiceName name);
Result AcknowledgeSession(Service *out_service, u64 *out_pid, ncm::TitleId *out_tid, ServiceName name);
Result HasMitm(bool *out, ServiceName name);
Result WaitMitm(ServiceName name);

View File

@ -301,7 +301,7 @@ Result smAtmosphereMitmUninstall(const char *name) {
return rc;
}
Result smAtmosphereMitmAssociateProcessIdAndTitleId(u64 pid, u64 tid) {
Result smAtmosphereMitmDeclareFuture(const char *name) {
IpcCommand c;
ipcInitialize(&c);
Service *srv = &g_smMitmSrv;
@ -309,15 +309,13 @@ Result smAtmosphereMitmAssociateProcessIdAndTitleId(u64 pid, u64 tid) {
struct {
u64 magic;
u64 cmd_id;
u64 pid;
u64 tid;
u64 service_name;
} *raw;
raw = serviceIpcPrepareHeader(srv, &c, sizeof(*raw));
raw->magic = SFCI_MAGIC;
raw->cmd_id = 65002;
raw->pid = pid;
raw->tid = tid;
raw->cmd_id = 65006;
raw->service_name = smEncodeName(name);
Result rc = serviceIpcDispatch(srv);
@ -330,7 +328,6 @@ Result smAtmosphereMitmAssociateProcessIdAndTitleId(u64 pid, u64 tid) {
serviceIpcParse(srv, &r, sizeof(*resp));
resp = r.Raw;
rc = resp->result;
}

View File

@ -21,7 +21,7 @@ void smAtmosphereMitmExit(void);
Result smAtmosphereMitmInstall(Handle *handle_out, Handle *query_out, const char *name);
Result smAtmosphereMitmUninstall(const char *name);
Result smAtmosphereMitmAssociateProcessIdAndTitleId(u64 pid, u64 tid);
Result smAtmosphereMitmDeclareFuture(const char *name);
Result smAtmosphereMitmAcknowledgeSession(Service *srv_out, u64 *pid_out, u64 *tid_out, const char *name);
#ifdef __cplusplus

View File

@ -36,9 +36,9 @@ namespace sts::sm::mitm {
});
}
Result AssociateProcessIdAndTitleId(u64 process_id, u64 title_id) {
Result DeclareFutureMitm(ServiceName name) {
return impl::DoWithMitmSession([&]() {
return smAtmosphereMitmAssociateProcessIdAndTitleId(process_id, title_id);
return smAtmosphereMitmDeclareFuture(name.name);
});
}