r629を巻き戻し。サイズチェック時はエラーをスキップできないので。

NN_UTIL_RETURN_IF_FAILEDをCOMMON_LOGGER_RETURN_IF_FAILEDに置換
CmacAdderが出力先ディレクトリ初期化時にエラーで止まっていたので修正

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@631 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2012-02-14 02:54:42 +00:00
parent 4111408dcb
commit 7320c776ea
13 changed files with 286 additions and 282 deletions

View File

@ -234,10 +234,8 @@ nn::Result NandSavedataChecker::CleanUp(bool erase)
{ {
nn::Result result; nn::Result result;
result = m_pSharedExtSaveChecker->CalculateFileSize(); m_pSharedExtSaveChecker->CalculateFileSize();
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result); m_pSysSaveChecker->CalculateFileSize();
result = m_pSysSaveChecker->CalculateFileSize();
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
result = m_pSharedExtSaveChecker->CleanUp(erase); result = m_pSharedExtSaveChecker->CleanUp(erase);
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);

View File

@ -418,7 +418,7 @@ nn::Result ImportCountryLanguageData()
SetLanguage(reinterpret_cast<common::CfgCountryLanguage*> (buf)->language); SetLanguage(reinterpret_cast<common::CfgCountryLanguage*> (buf)->language);
} }
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
} }
} }
else else
@ -539,7 +539,7 @@ nn::Result ImportMcuRtc(common::HardwareStateManager& manager)
} }
} }
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
} }
else else
{ {
@ -678,7 +678,7 @@ nn::Result ImportIvs()
{ {
result = nn::fs::CTR::ImportIntegrityVerificationSeed( result = nn::fs::CTR::ImportIntegrityVerificationSeed(
*reinterpret_cast<nn::fs::CTR::IntegrityVerificationSeed*>(dec)); *reinterpret_cast<nn::fs::CTR::IntegrityVerificationSeed*>(dec));
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
COMMON_LOGGER("Import SDCI.\n"); COMMON_LOGGER("Import SDCI.\n");
} }
else else
@ -703,7 +703,7 @@ nn::Result ImportIvs()
} }
nn::fs::Unmount(common::NAND_ARCHIVE_NAME); nn::fs::Unmount(common::NAND_ARCHIVE_NAME);
} }
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
} }
else else
{ {
@ -1725,7 +1725,7 @@ nn::Result InitializeHardwareDependentSetting()
common::CfgCalData cfgCalData; common::CfgCalData cfgCalData;
result = ImportCalData(&cfgCalData); result = ImportCalData(&cfgCalData);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL), result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL),
&cfgCalData.touchPanelCfgData, sizeof(TouchPanelCfgData)); &cfgCalData.touchPanelCfgData, sizeof(TouchPanelCfgData));
@ -1778,11 +1778,11 @@ nn::Result SetupVersionAndFileList()
// ファイル一覧を読み込む // ファイル一覧を読み込む
nn::Result result = ReadFileList(&s_SdFileSize, &s_FileLists); nn::Result result = ReadFileList(&s_SdFileSize, &s_FileLists);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
// バージョンデータを読み込む // バージョンデータを読み込む
result = ReadVersionData(); result = ReadVersionData();
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
return result; return result;
} }
@ -1801,7 +1801,7 @@ nn::Result ReadFileList(SdFileSize* sdFiles, common::ImportDataList* fileList)
// サイズ取得のため一時的に開く // サイズ取得のため一時的に開く
result = file.TryInitialize(common::FILE_LIST_PATHNAME); result = file.TryInitialize(common::FILE_LIST_PATHNAME);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
result = file.TryGetSize(&fileSize); result = file.TryGetSize(&fileSize);
if (result.IsFailure()) if (result.IsFailure())

View File

@ -39,14 +39,14 @@ PreinstallImporter::~PreinstallImporter()
nn::Result PreinstallImporter::SetupSd(bool* isAlreadyAvailable) nn::Result PreinstallImporter::SetupSd(bool* isAlreadyAvailable)
{ {
// SDカードがインポート可能状態かどうかチェック // SDカードがインポート可能状態かどうかチェック
NN_UTIL_RETURN_IF_FAILED( COMMON_LOGGER_RETURN_RESULT_IF_FAILED(
nn::am::QueryAvailableExternalTitleDatabase(isAlreadyAvailable) nn::am::QueryAvailableExternalTitleDatabase(isAlreadyAvailable)
); );
// タイトルデータベースを作成する // タイトルデータベースを作成する
if (!*isAlreadyAvailable) if (!*isAlreadyAvailable)
{ {
NN_UTIL_RETURN_IF_FAILED( COMMON_LOGGER_RETURN_RESULT_IF_FAILED(
nn::am::InitializeExternalTitleDatabase() nn::am::InitializeExternalTitleDatabase()
); );
} }
@ -68,7 +68,7 @@ nn::Result PreinstallImporter::ListTitles(nn::ProgramId* list, size_t* num, bit6
} }
// 通信結果をパースしてタイトルリストを作成する // 通信結果をパースしてタイトルリストを作成する
NN_UTIL_RETURN_IF_FAILED( COMMON_LOGGER_RETURN_RESULT_IF_FAILED(
GetHtmlBodyAndParseXmlData(comm, list, num) GetHtmlBodyAndParseXmlData(comm, list, num)
); );
return nn::ResultSuccess(); return nn::ResultSuccess();
@ -78,7 +78,7 @@ nn::Result PreinstallImporter::ListTitlesBasedOnTickets(nn::ProgramId* list, siz
{ {
s32 personalizedTicketNum; s32 personalizedTicketNum;
nn::am::TicketInfo ticketInfo[256]; nn::am::TicketInfo ticketInfo[256];
NN_UTIL_RETURN_IF_FAILED( COMMON_LOGGER_RETURN_RESULT_IF_FAILED(
nn::am::GetPersonalizedTicketInfoList(&personalizedTicketNum, ticketInfo, 256) nn::am::GetPersonalizedTicketInfoList(&personalizedTicketNum, ticketInfo, 256)
); );
@ -121,7 +121,7 @@ nn::Result PreinstallImporter::GetHtmlBodyAndParseXmlData(BgsCommunicator& comm,
} }
// XMLを解析してタイトルリストを設定する // XMLを解析してタイトルリストを設定する
NN_UTIL_RETURN_IF_FAILED(ParseXmlData(buf, list, num)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(ParseXmlData(buf, list, num));
return nn::ResultSuccess(); return nn::ResultSuccess();
} }
@ -140,7 +140,7 @@ nn::Result PreinstallImporter::ParseXmlData(void* buf, nn::ProgramId* list, size
nn::xml::simple::SimpleXmlParser simpleXmlParser(pAllocator); nn::xml::simple::SimpleXmlParser simpleXmlParser(pAllocator);
const nn::xml::simple::SimpleXmlParser::Node* pTaskIdNode; const nn::xml::simple::SimpleXmlParser::Node* pTaskIdNode;
NN_UTIL_RETURN_IF_FAILED( COMMON_LOGGER_RETURN_RESULT_IF_FAILED(
SetNodetoTitleIds(simpleXmlParser, xmlResult, &pTaskIdNode) SetNodetoTitleIds(simpleXmlParser, xmlResult, &pTaskIdNode)
); );

View File

@ -1,153 +1,153 @@
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Project: Horizon Project: Horizon
File: RegionIdModifier.cpp File: RegionIdModifier.cpp
Copyright (C)2011 Nintendo Co., Ltd. All rights reserved. Copyright (C)2011 Nintendo Co., Ltd. All rights reserved.
These coded instructions, statements, and computer programs contain These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form, 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. in whole or in part, without the prior written consent of Nintendo.
$Rev:$ $Rev:$
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
#include "RegionIdModifier.h" #include "RegionIdModifier.h"
#include <cwchar> #include <cwchar>
#include <cstring> #include <cstring>
struct CountryData struct CountryData
{ {
u32 id; // 上記定数にあるように、国IDと地域IDを組み合わせたID u32 id; // 上記定数にあるように、国IDと地域IDを組み合わせたID
u16 regionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES][nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH]; // NULL終端込み u16 regionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES][nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH]; // NULL終端込み
u8 order[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES]; // 言語ごとの地域名並び順「未設定」が0になるので、最初の地域は1 u8 order[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NUM_LANGUAGES]; // 言語ごとの地域名並び順「未設定」が0になるので、最初の地域は1
u16 latitude; // リストの値を 65536/360 倍して格納して下さい u16 latitude; // リストの値を 65536/360 倍して格納して下さい
u16 longitude; // リストの値を 65536/360 倍して格納して下さい u16 longitude; // リストの値を 65536/360 倍して格納して下さい
}; };
const size_t NUP_VERSION_TO_REGIONNUM[] = const size_t NUP_VERSION_TO_REGIONNUM[] =
{ {
1, // ローンチ(0) 1, // ローンチ(0)
1, // 0thNUP(1) 1, // 0thNUP(1)
2, // 1stNUP(2) 2, // 1stNUP(2)
2, // 1.05NUP(3) 2, // 1.05NUP(3)
2, // 1.1NUP(4) 2, // 1.1NUP(4)
3, // 2ndNUP(5) 3, // 2ndNUP(5)
3, // 2.1NUP(6) 3, // 2.1NUP(6)
}; };
const wchar_t* DIR_PATH[] = const wchar_t* DIR_PATH[] =
{ {
L"0/JP/", L"0/JP/",
L"0/US/", L"0/US/",
L"0/EU/", L"0/EU/",
L"2/JP/", L"2/JP/",
L"2/US/", L"2/US/",
L"2/EU/", L"2/EU/",
L"5/JP/", L"5/JP/",
L"5/US/", L"5/US/",
L"5/EU/" L"5/EU/"
}; };
RegionIdModifier::RegionIdModifier(u16 id, u8 nupVersion, u8 regionCode, const wchar_t* regionName) RegionIdModifier::RegionIdModifier(u16 id, u8 nupVersion, u8 regionCode, const wchar_t* regionName)
{ {
m_Id = id; m_Id = id;
m_NupVersion = nupVersion; m_NupVersion = nupVersion;
m_RegionCode = regionCode; m_RegionCode = regionCode;
if (regionName != NULL) if (regionName != NULL)
{ {
std::wcsncpy(m_RegionName, regionName, sizeof(m_RegionName) / sizeof(wchar_t)); std::wcsncpy(m_RegionName, regionName, sizeof(m_RegionName) / sizeof(wchar_t));
} }
} }
bool RegionIdModifier::IsValid() bool RegionIdModifier::IsValid()
{ {
return (m_Id & 0x00ff) != 0x01; return (m_Id & 0x00ff) != 0x01;
} }
const PathList* RegionIdModifier::GetDirectoryPath() const PathList* RegionIdModifier::GetDirectoryPath()
{ {
// 範囲外のリージョン // 範囲外のリージョン
if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode) if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode)
{ {
return NULL; return NULL;
} }
for (u8 i = 0; i < nn::cfg::CTR::CFG_REGION_EUROPE + 1; i++) for (u8 i = 0; i < nn::cfg::CTR::CFG_REGION_EUROPE + 1; i++)
{ {
std::wcsncpy(m_DirectoryPathBuf[i].path, DIR_PATH[m_RegionCode + i * (nn::cfg::CTR::CFG_REGION_EUROPE + 1)], std::wcsncpy(m_DirectoryPathBuf[i].path, DIR_PATH[m_RegionCode + i * (nn::cfg::CTR::CFG_REGION_EUROPE + 1)],
PATHLIST_LENGTH); PATHLIST_LENGTH);
} }
return m_DirectoryPathBuf; return m_DirectoryPathBuf;
} }
size_t RegionIdModifier::GetDirectoryPathNum() size_t RegionIdModifier::GetDirectoryPathNum()
{ {
// 範囲外のリージョン // 範囲外のリージョン
if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode) if (nn::cfg::CTR::CFG_REGION_EUROPE < m_RegionCode)
{ {
return 0; return 0;
} }
const size_t countryNum = sizeof(NUP_VERSION_TO_REGIONNUM) / sizeof(NUP_VERSION_TO_REGIONNUM[0]); const size_t countryNum = sizeof(NUP_VERSION_TO_REGIONNUM) / sizeof(NUP_VERSION_TO_REGIONNUM[0]);
if (m_NupVersion > countryNum - 1) if (m_NupVersion > countryNum - 1)
{ {
return NUP_VERSION_TO_REGIONNUM[countryNum - 1]; return NUP_VERSION_TO_REGIONNUM[countryNum - 1];
} }
else else
{ {
return NUP_VERSION_TO_REGIONNUM[m_NupVersion]; return NUP_VERSION_TO_REGIONNUM[m_NupVersion];
} }
} }
const wchar_t* RegionIdModifier::GetFileName() const wchar_t* RegionIdModifier::GetFileName()
{ {
std::swprintf(m_FileNameBuf, sizeof(m_FileNameBuf), L"%d_LZ.bin", m_Id >> 8); std::swprintf(m_FileNameBuf, sizeof(m_FileNameBuf), L"%d_LZ.bin", m_Id >> 8);
return m_FileNameBuf; return m_FileNameBuf;
} }
const PathList* RegionIdModifier::GetFilePath() const PathList* RegionIdModifier::GetFilePath()
{ {
std::memset(m_FilePathBuf, 0, sizeof(m_FilePathBuf)); std::memset(m_FilePathBuf, 0, sizeof(m_FilePathBuf));
GetDirectoryPath(); GetDirectoryPath();
for (u8 i = 0; i < GetDirectoryPathNum(); i++) for (u8 i = 0; i < GetDirectoryPathNum(); i++)
{ {
size_t writeSize = std::wcslen(m_DirectoryPathBuf[i].path); size_t writeSize = std::wcslen(m_DirectoryPathBuf[i].path);
std::wcsncpy(m_FilePathBuf[i].path, m_DirectoryPathBuf[i].path, writeSize); std::wcsncpy(m_FilePathBuf[i].path, m_DirectoryPathBuf[i].path, writeSize);
std::wcsncat(m_FilePathBuf[i].path, GetFileName(), PATHLIST_LENGTH - writeSize); std::wcsncat(m_FilePathBuf[i].path, GetFileName(), PATHLIST_LENGTH - writeSize);
} }
return m_FilePathBuf; return m_FilePathBuf;
} }
size_t RegionIdModifier::GetFilePathNum() size_t RegionIdModifier::GetFilePathNum()
{ {
return GetDirectoryPathNum(); return GetDirectoryPathNum();
} }
bool RegionIdModifier::GetValidRegionId(void* buf, size_t size, u8* id) bool RegionIdModifier::GetValidRegionId(void* buf, size_t size, u8* id)
{ {
if (buf == NULL || size == 0) if (buf == NULL || size == 0)
{ {
return false; return false;
} }
u32 numRegion; // その国に含まれる地域の数 u32 numRegion; // その国に含まれる地域の数
numRegion = *reinterpret_cast<u32*>(buf); numRegion = *reinterpret_cast<u32*>(buf);
CountryData* pCountry; CountryData* pCountry;
pCountry = reinterpret_cast<CountryData*>(&reinterpret_cast<u32*>(buf)[1]); pCountry = reinterpret_cast<CountryData*>(&reinterpret_cast<u32*>(buf)[1]);
for (u32 i = 0; i < numRegion + 1; i++) for (u32 i = 0; i < numRegion + 1; i++)
{ {
if (std::wcscmp(m_RegionName, reinterpret_cast<wchar_t*>(pCountry->regionName[0])) == 0) if (std::wcscmp(m_RegionName, reinterpret_cast<wchar_t*>(pCountry->regionName[0])) == 0)
{ {
*id = (pCountry->id >> 16) & 0x00ff; *id = (pCountry->id >> 16) & 0x00ff;
return true; return true;
} }
pCountry++; pCountry++;
} }
return false; return false;
} }

View File

@ -1,89 +1,89 @@
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Project: Horizon Project: Horizon
File: RegionIdModifier.h File: RegionIdModifier.h
Copyright (C)2011 Nintendo Co., Ltd. All rights reserved. Copyright (C)2011 Nintendo Co., Ltd. All rights reserved.
These coded instructions, statements, and computer programs contain These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form, 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. in whole or in part, without the prior written consent of Nintendo.
$Rev:$ $Rev:$
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
#ifndef _REGION_ID_MODIFIER_H_ #ifndef _REGION_ID_MODIFIER_H_
#define _REGION_ID_MODIFIER_H_ #define _REGION_ID_MODIFIER_H_
#if defined(__ARMCC_VERSION) #if defined(__ARMCC_VERSION)
#include <nn.h> #include <nn.h>
#include <nn/cfg.h> #include <nn/cfg.h>
#else #else
#include "test_common.h" #include "test_common.h"
#endif #endif
const size_t PATHLIST_LENGTH = 32; const size_t PATHLIST_LENGTH = 32;
struct PathList struct PathList
{ {
wchar_t path[PATHLIST_LENGTH]; wchar_t path[PATHLIST_LENGTH];
}; };
//! @brief データ移行ツールで破壊した地域idを修正するためのクラスです //! @brief データ移行ツールで破壊した地域idを修正するためのクラスです
class RegionIdModifier class RegionIdModifier
{ {
public: public:
//! @brief パラメータを与えて初期化します。 //! @brief パラメータを与えて初期化します。
//! @param[in] id SimpleAddressの上位16ビット //! @param[in] id SimpleAddressの上位16ビット
//! @param[in] nupVersion NUPバージョン //! @param[in] nupVersion NUPバージョン
//! @param[in] regionCode リージョン //! @param[in] regionCode リージョン
//! @param[in] regionName 地域名 //! @param[in] regionName 地域名
RegionIdModifier(u16 id, u8 nupVersion, u8 regionCode, const wchar_t* regionName); RegionIdModifier(u16 id, u8 nupVersion, u8 regionCode, const wchar_t* regionName);
~RegionIdModifier() {}; ~RegionIdModifier() {};
//! @brief 正しいIDかどうか //! @brief 正しいIDかどうか
bool IsValid(); bool IsValid();
//! @brief バージョン、リージョンに応じたディレクトリパスの配列を取得します //! @brief バージョン、リージョンに応じたディレクトリパスの配列を取得します
//! @return パス名。バージョン・リージョンが正しくない場合はNULL //! @return パス名。バージョン・リージョンが正しくない場合はNULL
const PathList* GetDirectoryPath(); const PathList* GetDirectoryPath();
//! @brief バージョン、リージョンに応じたディレクトリパス数を取得します //! @brief バージョン、リージョンに応じたディレクトリパス数を取得します
size_t GetDirectoryPathNum(); size_t GetDirectoryPathNum();
//! @brief 国idに応じたファイル名を取得します //! @brief 国idに応じたファイル名を取得します
const wchar_t* GetFileName(); const wchar_t* GetFileName();
//! @brief バージョン、リージョン、国idに応じたファイルパスの配列を取得します //! @brief バージョン、リージョン、国idに応じたファイルパスの配列を取得します
const PathList* GetFilePath(); const PathList* GetFilePath();
//! @brief バージョン、リージョン、国idに応じたファイルパス数を取得します //! @brief バージョン、リージョン、国idに応じたファイルパス数を取得します
size_t GetFilePathNum(); size_t GetFilePathNum();
//! @brief 与えられたバッファから正しい地域idを取得します //! @brief 与えられたバッファから正しい地域idを取得します
//! @param[in] buf 展開済みの地域データの入ったバッファ //! @param[in] buf 展開済みの地域データの入ったバッファ
//! @param[in] size バッファサイズ //! @param[in] size バッファサイズ
//! @param[out] id 正しいid //! @param[out] id 正しいid
//! @return 正しいidが見つかったかどうか //! @return 正しいidが見つかったかどうか
bool GetValidRegionId(void* buf , size_t size, u8* id); bool GetValidRegionId(void* buf , size_t size, u8* id);
private: private:
//! @brief SimpleAddressの上位16ビット //! @brief SimpleAddressの上位16ビット
// 上位8ビットが国id,下位8ビットが地域 // 上位8ビットが国id,下位8ビットが地域
u16 m_Id; u16 m_Id;
//! @brief NUPバージョン番号 //! @brief NUPバージョン番号
u8 m_NupVersion; u8 m_NupVersion;
//! @brief リージョンコード //! @brief リージョンコード
u8 m_RegionCode; u8 m_RegionCode;
//! @brief 地域名 //! @brief 地域名
wchar_t m_RegionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH]; wchar_t m_RegionName[nn::cfg::CTR::CFG_SIMPLE_ADDRESS_NAME_LENGTH];
//! @brief ファイル名を保存するバッファ //! @brief ファイル名を保存するバッファ
wchar_t m_FileNameBuf[PATHLIST_LENGTH]; wchar_t m_FileNameBuf[PATHLIST_LENGTH];
//! @brief ディレクトリパスを保存するバッファ //! @brief ディレクトリパスを保存するバッファ
PathList m_DirectoryPathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1]; PathList m_DirectoryPathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1];
//! @brief ファイルパスを保存するバッファ //! @brief ファイルパスを保存するバッファ
PathList m_FilePathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1]; PathList m_FilePathBuf[nn::cfg::CTR::CFG_REGION_EUROPE + 1];
}; };
#endif // _REGION_ID_MODIFIER_H_ #endif // _REGION_ID_MODIFIER_H_

View File

@ -233,9 +233,9 @@ nn::Result ShopOperationConnect(ECAccountInfo** pAccountInfo)
-------------------------------------------------------------------- */ -------------------------------------------------------------------- */
COMMON_LOGGER_DETAIL("nim::Shop::Connect\n"); COMMON_LOGGER_DETAIL("nim::Shop::Connect\n");
result = nn::nim::Shop::Connect(pAccountInfo, s_EcBufffer, EC_BUFFER_SIZE); result = nn::nim::Shop::Connect(pAccountInfo, s_EcBufffer, EC_BUFFER_SIZE);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
result = CheckStandbyMode((*pAccountInfo)->isStandbyMode); result = CheckStandbyMode((*pAccountInfo)->isStandbyMode);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
PrintECAccountInfo(**pAccountInfo); PrintECAccountInfo(**pAccountInfo);
COMMON_LOGGER_DETAIL("\n"); COMMON_LOGGER_DETAIL("\n");
@ -254,7 +254,7 @@ nn::Result ShopOperationInitialize()
{ {
COMMON_LOGGER_DETAIL("nim::InitializeForShop\n"); COMMON_LOGGER_DETAIL("nim::InitializeForShop\n");
result = nn::nim::InitializeForShop(); result = nn::nim::InitializeForShop();
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
s_IsNimShopInitialized = true; s_IsNimShopInitialized = true;
} }
@ -264,11 +264,11 @@ nn::Result ShopOperationInitialize()
COMMON_LOGGER_DETAIL("nim::Shop::SetApplication Id\n"); COMMON_LOGGER_DETAIL("nim::Shop::SetApplication Id\n");
nn::nim::Shop::SetApplicationId(); nn::nim::Shop::SetApplicationId();
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
COMMON_LOGGER_DETAIL("nim::Shop::SetTIN\n"); COMMON_LOGGER_DETAIL("nim::Shop::SetTIN\n");
result = nn::nim::Shop::SetTin(CONSOLE_RESTORE_TIN); result = nn::nim::Shop::SetTin(CONSOLE_RESTORE_TIN);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
return result; return result;
} }
@ -277,14 +277,14 @@ nn::Result ShopOperationConnect()
{ {
nn::Result result; nn::Result result;
result = ShopOperationInitialize(); result = ShopOperationInitialize();
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
/* ------------------------------------------------------------------- /* -------------------------------------------------------------------
Connect Connect
-------------------------------------------------------------------- */ -------------------------------------------------------------------- */
ECAccountInfo* pAccountInfo; ECAccountInfo* pAccountInfo;
result = ShopOperationConnect(&pAccountInfo); result = ShopOperationConnect(&pAccountInfo);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
return result; return result;
} }
@ -298,7 +298,7 @@ nn::Result ShopOperationFinalize()
-------------------------------------------------------------------- */ -------------------------------------------------------------------- */
COMMON_LOGGER_DETAIL("nim::FinalizeForShop\n"); COMMON_LOGGER_DETAIL("nim::FinalizeForShop\n");
result = nn::nim::FinalizeForShop(); result = nn::nim::FinalizeForShop();
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
s_IsNimShopInitialized = false; s_IsNimShopInitialized = false;
return result; return result;

View File

@ -101,7 +101,7 @@ nn::Result GetEntry(ES_NAMESPACE::ESTitleId titleId, EC_NAMESPACE::ECTitleCatalo
nn::Result GetTitleConfig(const ES_NAMESPACE::ESTitleId titleId, nn::nim::TitleConfig *titleConfig, s64* requiredSize) nn::Result GetTitleConfig(const ES_NAMESPACE::ESTitleId titleId, nn::nim::TitleConfig *titleConfig, s64* requiredSize)
{ {
EC_NAMESPACE::ECTitleCatalogEntry *entry; EC_NAMESPACE::ECTitleCatalogEntry *entry;
NN_UTIL_RETURN_IF_FAILED(GetEntry(titleId, &entry)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(GetEntry(titleId, &entry));
titleConfig->titleId =titleId; titleConfig->titleId =titleId;
titleConfig->version=std::strtoull(GetAttribute(entry->attributes, entry->nAttributes, "Version"), NULL, 10); titleConfig->version=std::strtoull(GetAttribute(entry->attributes, entry->nAttributes, "Version"), NULL, 10);
@ -307,7 +307,7 @@ nn::Result WaitCancelled()
while(true) while(true)
{ {
// キャンセルがResultとして返ってくる / ダウンロード終了まで待つ // キャンセルがResultとして返ってくる / ダウンロード終了まで待つ
NN_UTIL_RETURN_IF_FAILED(nn::nim::Shop::GetProgress(&progress)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(nn::nim::Shop::GetProgress(&progress));
if(progress.lastResult==nn::nim::ResultCancelRequested() || progress.state==nn::nim::TITLE_STATE_FINISHED) if(progress.lastResult==nn::nim::ResultCancelRequested() || progress.state==nn::nim::TITLE_STATE_FINISHED)
{ {
break; break;

View File

@ -759,7 +759,7 @@ nn::Result CalculateFileSizeRecursively(std::wstring currentDirectory, s64& file
NN_LOG("%s\n", common::GetCharStr(currentDirectory.c_str())); NN_LOG("%s\n", common::GetCharStr(currentDirectory.c_str()));
result = dir.TryInitialize(currentDirectory.c_str()); result = dir.TryInitialize(currentDirectory.c_str());
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
for (;;) for (;;)
{ {
@ -786,7 +786,7 @@ nn::Result CalculateFileSizeRecursively(std::wstring currentDirectory, s64& file
if (entry.attributes.isDirectory) if (entry.attributes.isDirectory)
{ {
result = CalculateFileSizeRecursively(currentDirectory + std::wstring(entry.entryName) + std::wstring(L"/"), fileSize); result = CalculateFileSizeRecursively(currentDirectory + std::wstring(entry.entryName) + std::wstring(L"/"), fileSize);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
} }
// ファイルの場合 // ファイルの場合
else else

View File

@ -457,7 +457,7 @@ nn::Result SaveDataMover::Import(void* buf, size_t bufSize, bit32 id, u64* progr
const int MAX_PATH_LEN = 127; const int MAX_PATH_LEN = 127;
char srcRoot[MAX_PATH_LEN + 1]; char srcRoot[MAX_PATH_LEN + 1];
NN_UTIL_RETURN_IF_FAILED(nn::fs::CreateNewSharedExtSaveDataRawStorage(id)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(nn::fs::CreateNewSharedExtSaveDataRawStorage(id));
// 2. fs::CreateNewSharedExtSaveDataRawStorage を呼び // 2. fs::CreateNewSharedExtSaveDataRawStorage を呼び
// 書き込み用の領域を作成します。 // 書き込み用の領域を作成します。

View File

@ -98,7 +98,7 @@ nn::Result SdReaderWriter::WriteBuf(nn::fs::FileStream& file, const wchar_t* pat
nn::Result result; nn::Result result;
result = WriteBufCore(file, path, buf, size); result = WriteBufCore(file, path, buf, size);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
result = file.TryFlush(); result = file.TryFlush();
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
@ -116,7 +116,7 @@ nn::Result SdReaderWriter::WriteBufWithCmac(const wchar_t* path, void* buf, size
nn::fs::FileStream file; nn::fs::FileStream file;
result = WriteBufCore(file, path, buf, size); result = WriteBufCore(file, path, buf, size);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE];
nn::crypto::CalculateSha256(sha256Hash, buf, size); nn::crypto::CalculateSha256(sha256Hash, buf, size);
@ -173,7 +173,7 @@ nn::Result SdReaderWriter::ReadBuf(nn::fs::FileStream& file, const wchar_t* path
nn::Result result; nn::Result result;
result = ReadBufCore(file, path, buf, size, totalSize); result = ReadBufCore(file, path, buf, size, totalSize);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
file.Finalize(); file.Finalize();
return result; return result;
@ -187,7 +187,7 @@ nn::Result SdReaderWriter::ReadBufWithCmac(const wchar_t* path, void* buf, size_
NN_ASSERT(size > nn::crypto::AES_CMAC_MAC_SIZE); NN_ASSERT(size > nn::crypto::AES_CMAC_MAC_SIZE);
result = ReadBufCore(file, path, buf, size, totalSize); result = ReadBufCore(file, path, buf, size, totalSize);
NN_UTIL_RETURN_IF_FAILED(result); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
file.Finalize(); file.Finalize();
// ハッシュが付加されていない // ハッシュが付加されていない

View File

@ -2,6 +2,7 @@
#include <nn/fs.h> #include <nn/fs.h>
#include <cstdlib> #include <cstdlib>
#include "configLoader.h" #include "configLoader.h"
#include "CommonLogger.h"
namespace common namespace common
{ {
@ -10,8 +11,8 @@ Result ConfigFileLoader::Initialize(const wchar_t* fileName, void* buffer, const
{ {
s64 fileSize; s64 fileSize;
FileInputStream fi; FileInputStream fi;
NN_UTIL_RETURN_IF_FAILED(fi.TryInitialize(fileName)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(fi.TryInitialize(fileName));
NN_UTIL_RETURN_IF_FAILED(fi.TryGetSize(&fileSize)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(fi.TryGetSize(&fileSize));
// NULL終端ぶん読めるサイズを減らす // NULL終端ぶん読めるサイズを減らす
if (fileSize > bufferSize - sizeof(wchar_t)) if (fileSize > bufferSize - sizeof(wchar_t))
@ -21,7 +22,7 @@ Result ConfigFileLoader::Initialize(const wchar_t* fileName, void* buffer, const
} }
m_Buffer = static_cast<wchar_t*>(buffer); m_Buffer = static_cast<wchar_t*>(buffer);
NN_UTIL_RETURN_IF_FAILED(fi.TryRead(&m_UsedBufferSize, m_Buffer, fileSize)); COMMON_LOGGER_RETURN_RESULT_IF_FAILED(fi.TryRead(&m_UsedBufferSize, m_Buffer, fileSize));
NN_LOG("config size = %d\n", m_UsedBufferSize); NN_LOG("config size = %d\n", m_UsedBufferSize);
return ParseData(); return ParseData();
} }

View File

@ -39,6 +39,7 @@ SOURCES[] =
../../common/configLoader.cpp ../../common/configLoader.cpp
../../common/VersionDetect.cpp ../../common/VersionDetect.cpp
include $(ROOT)/common/BuildSwitch.om
CTR_BANNER_SPEC = AutoBoot.bsf CTR_BANNER_SPEC = AutoBoot.bsf
ROMFS_ROOT = ../../common/romfiles ROMFS_ROOT = ../../common/romfiles
@ -56,7 +57,7 @@ LIBS += libnn_cfg \
INSTALL_SDK_TOOL = true INSTALL_SDK_TOOL = true
ROM_SPEC_FILE = $(TARGET_PROGRAM).rsf ROM_SPEC_FILE = $(TARGET_NAME).rsf
DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/private/RepairTool.desc DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/private/RepairTool.desc
include $(ROOT_OMAKE)/modulerules include $(ROOT_OMAKE)/modulerules

View File

@ -108,7 +108,11 @@ bool AddCmac(const wchar_t * from_path, void* buf, const size_t bufSize)
const wchar_t* CMAC_DIR = L"CmacAdded"; const wchar_t* CMAC_DIR = L"CmacAdded";
targetDirectory << from_path << CMAC_DIR; targetDirectory << from_path << CMAC_DIR;
result = nn::fs::TryDeleteDirectoryRecursively(targetDirectory.str().c_str()); result = nn::fs::TryDeleteDirectoryRecursively(targetDirectory.str().c_str());
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result); if(!(result <= nn::fs::ResultNotFound()))
{
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
}
result = nn::fs::TryCreateDirectory(targetDirectory.str().c_str()); result = nn::fs::TryCreateDirectory(targetDirectory.str().c_str());
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result); COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);