From d6499aba507749acfdba89afea3858d4b43b1572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 5 Mar 2017 14:10:18 +0100 Subject: [PATCH] IOS/ES: Implement ES_AddTitleCancel --- Source/Core/Core/IOS/ES/ES.cpp | 12 ++++++++++++ Source/Core/Core/IOS/ES/ES.h | 1 + 2 files changed, 13 insertions(+) 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);