summaryrefslogtreecommitdiff
path: root/src/core/loader/loader.h
diff options
context:
space:
mode:
authorGravatar liamwhite2023-09-10 13:40:39 -0400
committerGravatar GitHub2023-09-10 13:40:39 -0400
commit64130d9f01c15bc021d3802e484b5a480911e5cc (patch)
tree88a1905a2dce48c34c77fc258b47b4aea66107a9 /src/core/loader/loader.h
parentMerge pull request #11465 from Kelebek1/skip_remaining_reset (diff)
parentcore: implement basic integrity verification (diff)
downloadyuzu-64130d9f01c15bc021d3802e484b5a480911e5cc.tar.gz
yuzu-64130d9f01c15bc021d3802e484b5a480911e5cc.tar.xz
yuzu-64130d9f01c15bc021d3802e484b5a480911e5cc.zip
Merge pull request #11456 from liamwhite/worse-integrity-verification
core: implement basic integrity verification
Diffstat (limited to 'src/core/loader/loader.h')
-rw-r--r--src/core/loader/loader.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 721eb8e8c..b4828f7cd 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -3,6 +3,7 @@
3 3
4#pragma once 4#pragma once
5 5
6#include <functional>
6#include <iosfwd> 7#include <iosfwd>
7#include <memory> 8#include <memory>
8#include <optional> 9#include <optional>
@@ -132,6 +133,8 @@ enum class ResultStatus : u16 {
132 ErrorBLZDecompressionFailed, 133 ErrorBLZDecompressionFailed,
133 ErrorBadINIHeader, 134 ErrorBadINIHeader,
134 ErrorINITooManyKIPs, 135 ErrorINITooManyKIPs,
136 ErrorIntegrityVerificationNotImplemented,
137 ErrorIntegrityVerificationFailed,
135}; 138};
136 139
137std::string GetResultStatusString(ResultStatus status); 140std::string GetResultStatusString(ResultStatus status);
@@ -170,6 +173,13 @@ public:
170 virtual LoadResult Load(Kernel::KProcess& process, Core::System& system) = 0; 173 virtual LoadResult Load(Kernel::KProcess& process, Core::System& system) = 0;
171 174
172 /** 175 /**
176 * Try to verify the integrity of the file.
177 */
178 virtual ResultStatus VerifyIntegrity(std::function<bool(size_t, size_t)> progress_callback) {
179 return ResultStatus::ErrorIntegrityVerificationNotImplemented;
180 }
181
182 /**
173 * Get the code (typically .code section) of the application 183 * Get the code (typically .code section) of the application
174 * 184 *
175 * @param[out] buffer Reference to buffer to store data 185 * @param[out] buffer Reference to buffer to store data