カードスロットのロック/アンロックを関数内にまとめる。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@709 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-02-21 03:21:00 +00:00
parent 300862b2d7
commit f41ae31da4

View File

@ -280,7 +280,6 @@ static HotSwState LoadCardData(void)
// カード電源リセット // カード電源リセット
#ifdef SDK_ARM7 #ifdef SDK_ARM7
// [TODO:] リセットしている間はカードをロックする
McPowerOff(); McPowerOff();
McPowerOn(); McPowerOn();
#else // SDK_ARM9 #else // SDK_ARM9
@ -385,7 +384,7 @@ static HotSwState LoadCardData(void)
retval = s_funcTable[s_cbData.cardType].ChangeMode_N(&s_cbData); retval = s_funcTable[s_cbData.cardType].ChangeMode_N(&s_cbData);
if(retval != HOTSW_SUCCESS){ if(retval != HOTSW_SUCCESS){
return retval; goto error;
} }
// ---------------------- Secure Mode ---------------------- // ---------------------- Secure Mode ----------------------
@ -400,7 +399,8 @@ static HotSwState LoadCardData(void)
// カードIDの比較をして、一致しなければFALSEを返す // カードIDの比較をして、一致しなければFALSEを返す
if(s_cbData.id_nml != s_cbData.id_scr){ if(s_cbData.id_nml != s_cbData.id_scr){
return HOTSW_ID_CHECK_ERROR; retval = HOTSW_ID_CHECK_ERROR;
goto error;
} }
// Secure領域のSegment読み込み // Secure領域のSegment読み込み
@ -410,7 +410,7 @@ static HotSwState LoadCardData(void)
retval = s_funcTable[s_cbData.cardType].ChangeMode_S(&s_cbData); retval = s_funcTable[s_cbData.cardType].ChangeMode_S(&s_cbData);
if(retval != HOTSW_SUCCESS){ if(retval != HOTSW_SUCCESS){
return retval; goto error;
} }
// ---------------------- Game Mode ---------------------- // ---------------------- Game Mode ----------------------
@ -419,7 +419,8 @@ static HotSwState LoadCardData(void)
// カードIDの比較をして、一致しなければFALSEを返す // カードIDの比較をして、一致しなければFALSEを返す
if(s_cbData.id_scr != s_cbData.id_gam){ if(s_cbData.id_scr != s_cbData.id_gam){
return HOTSW_ID_CHECK_ERROR; retval = HOTSW_ID_CHECK_ERROR;
goto error;
} }
// 常駐モジュール残りを指定先に転送 // 常駐モジュール残りを指定先に転送
@ -436,6 +437,10 @@ static HotSwState LoadCardData(void)
retval = HOTSW_PULLED_OUT_ERROR; retval = HOTSW_PULLED_OUT_ERROR;
} }
goto end;
error:
OS_TPrintf("ng... retval : %d\n", retval);
end:
// カードのロック開放 // カードのロック開放
#ifndef DEBUG_USED_CARD_SLOT_B_ #ifndef DEBUG_USED_CARD_SLOT_B_
CARD_UnlockRom(s_cbData.lockID); CARD_UnlockRom(s_cbData.lockID);
@ -1124,19 +1129,6 @@ static void McThread(void *arg)
// 状態フラグを更新 // 状態フラグを更新
isPulledOut = (retval == HOTSW_SUCCESS) ? FALSE : TRUE; isPulledOut = (retval == HOTSW_SUCCESS) ? FALSE : TRUE;
// カード読み込み失敗してたら、後処理する
if(retval != HOTSW_SUCCESS){
OS_TPrintf("ng... retval : %d\n", retval);
// カードロックの開放
#ifndef DEBUG_USED_CARD_SLOT_B_
CARD_UnlockRom(s_cbData.lockID);
#else
UnlockExCard(s_cbData.lockID);
#endif
// カードロックIDの開放
OS_ReleaseLockID( s_cbData.lockID );
}
} }
// カードが抜けてたら // カードが抜けてたら