アプリ側にROMデータローディング用スレッドが無駄に露出していたので隠匿

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@202 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2007-11-16 07:23:44 +00:00
parent 83d6341b93
commit b1d96120ba
3 changed files with 12 additions and 10 deletions

View File

@ -492,14 +492,17 @@ static OSThread thread;
static u64 stack[ STACK_SIZE / sizeof(u64) ];
// 指定タイトルを別スレッドでロード開始する
OSThread* SYSM_StartLoadTitle( TitleProperty *pBootTitle )
void SYSM_StartLoadTitle( TitleProperty *pBootTitle )
{
s_load_success = FALSE;
OS_InitThread();
OS_CreateThread( &thread, (void (*)(void *))SYSMi_LoadTitleThreadFunc, (void*)pBootTitle, stack+STACK_SIZE/sizeof(u64), STACK_SIZE,THREAD_PRIO );
OS_WakeupThreadDirect( &thread );
return &thread;
}
BOOL SYSM_IsLoadTitleFinished( void )
{
return OS_IsThreadTerminated( &thread );
}
// ロード済みの指定タイトルの認証とブートを行う
@ -534,11 +537,10 @@ AuthResult SYSM_AuthenticateTitle( TitleProperty *pBootTitle )
// もしかすると使わないかも
AuthResult SYSM_LoadAndAuthenticateTitle( TitleProperty *pBootTitle )
{
OSThread *t;
// 指定タイトルのロード
t = SYSM_StartLoadTitle( pBootTitle );
SYSM_StartLoadTitle( pBootTitle );
OS_JoinThread(t);
OS_JoinThread(&thread);
// 認証
return SYSM_AuthenticateTitle( pBootTitle );

View File

@ -51,7 +51,6 @@ void TwlMain( void )
u32 state = START;
TitleProperty *pBootTitle = NULL;
TitleProperty pTitleList[ LAUNCHER_TITLE_LIST_NUM ];
OSThread *thread;
// システムメニュー初期化----------
SYSM_Init( Alloc, Free ); // OS_Initの前でコール。
@ -138,12 +137,12 @@ void TwlMain( void )
}
break;
case LOAD_START:
thread = SYSM_StartLoadTitle( pBootTitle );
SYSM_StartLoadTitle( pBootTitle );
state = LOADING;
break;
case LOADING:
LauncherLoading( pTitleList );
if(OS_IsThreadTerminated( thread ))
if( SYSM_IsLoadTitleFinished() )
{
GX_DispOff();
GXS_DispOff();

View File

@ -83,7 +83,8 @@ extern int SYSM_GetCardTitleList( TitleProperty *pTitleList_Card ); //
extern int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int size ); // NAND アプリタイトルリストの取得
// アプリ起動
extern OSThread* SYSM_StartLoadTitle( TitleProperty *pBootTitle ); // 指定したTitlePropertyを別スレッドでロード開始
extern void SYSM_StartLoadTitle( TitleProperty *pBootTitle ); // 指定したTitlePropertyを別スレッドでロード開始
extern BOOL SYSM_IsLoadTitleFinished( void ); // SYSM_StartLoadTitleで起動したスレッドが終了したかどうかを確認
extern AuthResult SYSM_AuthenticateTitle( TitleProperty *pBootTitle ); // 指定したTitlePropertyを認証してブート
extern AuthResult SYSM_LoadAndAuthenticateTitle( TitleProperty *pBootTitle ); // 指定したTitlePropertyをロード認証してブート
// 成功時は、never return.