summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/IOS/ES/ES.cpp12
-rw-r--r--Source/Core/Core/IOS/ES/ES.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/Source/Core/Core/IOS/ES/ES.cpp b/Source/Core/Core/IOS/ES/ES.cpp
index 18cb05a632..1a344c1ed0 100644
--- a/Source/Core/Core/IOS/ES/ES.cpp
+++ b/Source/Core/Core/IOS/ES/ES.cpp
@@ -322,6 +322,8 @@ IPCCommandResult ES::IOCtlV(const IOCtlVRequest& request)
return AddContentFinish(request);
case IOCTL_ES_ADDTITLEFINISH:
return AddTitleFinish(request);
+ case IOCTL_ES_ADDTITLECANCEL:
+ return AddTitleCancel(request);
case IOCTL_ES_GETDEVICEID:
return ESGetDeviceID(request);
case IOCTL_ES_GETTITLECONTENTSCNT:
@@ -685,6 +687,16 @@ IPCCommandResult ES::AddTitleFinish(const IOCtlVRequest& request)
return GetDefaultReply(IPC_SUCCESS);
}
+IPCCommandResult ES::AddTitleCancel(const IOCtlVRequest& request)
+{
+ if (!request.HasNumberOfValidVectors(0, 0) || !m_addtitle_tmd.IsValid())
+ return GetDefaultReply(ES_PARAMETER_SIZE_OR_ALIGNMENT);
+
+ AbortImport(m_addtitle_tmd.GetTitleId(), {});
+ m_addtitle_tmd.SetBytes({});
+ return GetDefaultReply(IPC_SUCCESS);
+}
+
IPCCommandResult ES::ESGetDeviceID(const IOCtlVRequest& request)
{
if (!request.HasNumberOfValidVectors(0, 1))
diff --git a/Source/Core/Core/IOS/ES/ES.h b/Source/Core/Core/IOS/ES/ES.h
index 24b7d172ee..1705cab1bb 100644
--- a/Source/Core/Core/IOS/ES/ES.h
+++ b/Source/Core/Core/IOS/ES/ES.h
@@ -156,6 +156,7 @@ private:
IPCCommandResult AddContentData(const IOCtlVRequest& request);
IPCCommandResult AddContentFinish(const IOCtlVRequest& request);
IPCCommandResult AddTitleFinish(const IOCtlVRequest& request);
+ IPCCommandResult AddTitleCancel(const IOCtlVRequest& request);
IPCCommandResult ESGetDeviceID(const IOCtlVRequest& request);
IPCCommandResult GetTitleContentsCount(const IOCtlVRequest& request);
IPCCommandResult GetTitleContents(const IOCtlVRequest& request);