mountInfoで大変なことをしていたので修正

・ランチャーのmountInfo登録時、デフォルトリストを直接弄ってそのまま次のアプリでもそのリストをデフォルトとして使っていた

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@980 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-03-27 05:51:02 +00:00
parent 65d5587ceb
commit 1b866df715

View File

@ -76,9 +76,13 @@ OSMountInfo s_defaultMountList[ DEFAULT_MOUNT_LIST_NUM ] ATTRIBUTE_ALIGN(4) = {
// ランチャーのマウント情報セット // ランチャーのマウント情報セット
void SYSMi_SetLauncherMountInfo( void ) void SYSMi_SetLauncherMountInfo( void )
{ {
OSMountInfo mountListBuffer[ DEFAULT_MOUNT_LIST_NUM ] ATTRIBUTE_ALIGN(4);
ROM_Header_Short *header = ( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF; ROM_Header_Short *header = ( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF;
NAMTitleId titleID = (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->titleID; NAMTitleId titleID = (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->titleID;
// デフォルトリストをバッファにコピー
MI_CpuCopyFast( s_defaultMountList, mountListBuffer, sizeof(s_defaultMountList) );
if( ( *(u8 *)HW_NAND_FIRM_HOTSTART_FLAG & 0x80 ) == 0 ) { if( ( *(u8 *)HW_NAND_FIRM_HOTSTART_FLAG & 0x80 ) == 0 ) {
MI_CpuClearFast( (u8 *)header->sub_mount_info_ram_address, 0x400 ); MI_CpuClearFast( (u8 *)header->sub_mount_info_ram_address, 0x400 );
} }
@ -89,12 +93,12 @@ void SYSMi_SetLauncherMountInfo( void )
// ※このタイミングではFSは動かせないので、FSを使わない特別版で対応。 // ※このタイミングではFSは動かせないので、FSを使わない特別版で対応。
SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND, SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND,
titleID, titleID,
&s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] ); &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ] );
// マウント情報のセット // マウント情報のセット
SYSMi_SetMountInfoCore( LAUNCHER_BOOTTYPE_NAND, SYSMi_SetMountInfoCore( LAUNCHER_BOOTTYPE_NAND,
titleID, titleID,
&s_defaultMountList[0], &mountListBuffer[0],
(OSMountInfo *)header->sub_mount_info_ram_address ); (OSMountInfo *)header->sub_mount_info_ram_address );
} }
@ -102,11 +106,15 @@ void SYSMi_SetLauncherMountInfo( void )
// SYSM_TWL_MOUNT_INFO_TMP_BUFFERに、ブートするアプリのマウント情報を登録する // SYSM_TWL_MOUNT_INFO_TMP_BUFFERに、ブートするアプリのマウント情報を登録する
void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle ) void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
{ {
OSMountInfo mountListBuffer[ DEFAULT_MOUNT_LIST_NUM ] ATTRIBUTE_ALIGN(4);
// アプリがTWL対応でない場合は、何もセットせずにリターン // アプリがTWL対応でない場合は、何もセットせずにリターン
if( ( (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->platform_code ) == 0 ) { if( ( (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->platform_code ) == 0 ) {
return; return;
} }
// デフォルトリストをバッファにコピー
MI_CpuCopyFast( s_defaultMountList, mountListBuffer, sizeof(s_defaultMountList) );
// 起動アプリのSRLパスをセット // 起動アプリのSRLパスをセット
// SYSMi_SetBootSRLPath( (LauncherBootType)pBootTitle->flags.bootType, // SYSMi_SetBootSRLPath( (LauncherBootType)pBootTitle->flags.bootType,
// pBootTitle->titleID ); // pBootTitle->titleID );
@ -118,17 +126,17 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
// ※ARM7ではNAMは動かせないので、NAMを使わないバージョンで対応。 // ※ARM7ではNAMは動かせないので、NAMを使わないバージョンで対応。
SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND, SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND,
pBootTitle->titleID, pBootTitle->titleID,
&s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] ); &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ] );
/* /*
// セーブデータ有無によるマウント情報の編集 // セーブデータ有無によるマウント情報の編集
SYSMi_ModifySaveDataMount( (LauncherBootType)pBootTitle->flags.bootType, SYSMi_ModifySaveDataMount( (LauncherBootType)pBootTitle->flags.bootType,
pBootTitle->titleID, pBootTitle->titleID,
&s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] ); &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ] );
*/ */
// マウント情報のセット // マウント情報のセット
SYSMi_SetMountInfoCore( (LauncherBootType)pBootTitle->flags.bootType, SYSMi_SetMountInfoCore( (LauncherBootType)pBootTitle->flags.bootType,
pBootTitle->titleID, pBootTitle->titleID,
&s_defaultMountList[0], &mountListBuffer[0],
(OSMountInfo *)SYSM_TWL_MOUNT_INFO_TMP_BUFFER ); (OSMountInfo *)SYSM_TWL_MOUNT_INFO_TMP_BUFFER );
/* /*