mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
VersionDetectでヒープを使わないように git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@525 385bec56-5757-e545-9c3a-d8741f4650f1
72 lines
2.4 KiB
C++
72 lines
2.4 KiB
C++
/*---------------------------------------------------------------------------*
|
|
Project: Horizon
|
|
File: HeapChecker.h
|
|
|
|
Copyright 2009-2011 Nintendo. All rights reserved.
|
|
|
|
These coded instructions, statements, and computer programs contain
|
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
|
Company Ltd., and are protected by Federal copyright law. They may
|
|
not be disclosed to third parties or copied or duplicated in any form,
|
|
in whole or in part, without the prior written consent of Nintendo.
|
|
|
|
$Rev$
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef HEAPCHECKER_H_
|
|
#define HEAPCHECKER_H_
|
|
|
|
#include <string>
|
|
|
|
#include <nn.h>
|
|
|
|
namespace ConsoleBackup
|
|
{
|
|
|
|
nn::Result CheckHeap(std::wstring saveRoot, void* buf, size_t& bufSize);
|
|
size_t GetCheckedHeapSize();
|
|
|
|
//! @brief チェックするヒープサイズの下限です。
|
|
const size_t HEAP_SIZE_MIN = 512 * 1024;
|
|
|
|
//! @brief チェックに使うファイルへのパスです。
|
|
const wchar_t* const HEAP_CHECKER_FILE = L"sdmc:/CTR_Console_Repair/Check";
|
|
|
|
class HeapChecker
|
|
{
|
|
public:
|
|
HeapChecker();
|
|
virtual ~HeapChecker();
|
|
|
|
/*!
|
|
@brief 与えられたバッファを使ってNANDから読み出したデータをSDカードに書き出し、データが正しく書き込めているか
|
|
チェックします。データが正しく書き込めていない場合、バッファサイズを半分にして繰り返しチェックします。
|
|
正しくデータを書き込めた時のbufSizeが設定されます。
|
|
|
|
@param[in] saveRoot NANDセーブデータのルートディレクトリのパス
|
|
@param[in] buf バッファ
|
|
@param[inout] buSize バッファサイズ
|
|
|
|
@return ResultOutofMemory データが正しく書き込めるバッファが存在しない場合に返されます。
|
|
@return ResultSuccess 上記以外
|
|
*/
|
|
|
|
nn::Result Check(std::wstring saveRoot, void* buf, size_t& bufSize);
|
|
|
|
/*!
|
|
@brief チェック済みのサイズを返す
|
|
|
|
@return Check関数 によってチェックされたサイズ。Check関数が呼び出されていない場合は0
|
|
*/
|
|
size_t GetCheckedSize();
|
|
|
|
private:
|
|
size_t m_CheckedSize;
|
|
NN_PADDING3;
|
|
bool m_IsAlreadyChecked;
|
|
|
|
};
|
|
|
|
} /* namespace ConsoleBackup */
|
|
#endif /* HEAPCHECKER_H_ */
|