diff --git a/build/libraries_sysmenu/wds/ARM9/src/WDSWrapper.c b/build/libraries_sysmenu/wds/ARM9/src/WDSWrapper.c index edb8cc18..4ec4b266 100644 --- a/build/libraries_sysmenu/wds/ARM9/src/WDSWrapper.c +++ b/build/libraries_sysmenu/wds/ARM9/src/WDSWrapper.c @@ -41,7 +41,6 @@ typedef struct WDSWrapperWork { u8 *stack; //!< WDSラッパーが使用するスタック OSThread thread; //!< WDSラッパーが使用するスレッド構造体 - OSMutex mutex; //!< WDSラッパーが使用するmutex u8 *wdswork; //!< WDSが使用するワークエリア @@ -57,6 +56,8 @@ typedef struct WDSWrapperWork BOOL restart; //!< 間欠スキャン再開フラグ OSDeliverArgInfo deliverinfo; //!< TWL用アプリ間引数ワークエリア + + BOOL callingback; //!< コールバック関数呼び出し中はTRUE } WDSWrapperWork; //----------------------------------------------------- @@ -71,6 +72,19 @@ static void WDS_WrapperInitialize_CB( void *arg ); static void WDS_WrapperStartScan_CB( void *arg ); static void WDS_WrapperEndScan_CB(void *arg); static void WDS_WrapperEnd_CB( void *arg ); +static void WDS_WrapperCallUserCallback( void *arg ); + +//-------------------------------------------------------------------------------- +/** ユーザー指定のコールバック関数を呼び出すユーティリティ関数 + @param arg コールバック関数に与えるパラメータ + @return なし +*///------------------------------------------------------------------------------ +static void WDS_WrapperCallUserCallback( void *arg ) +{ + g_wdswrapperwork->callingback = TRUE; + g_wdswrapperwork->initparam.callback( arg ); + g_wdswrapperwork->callingback = FALSE; +} //-------------------------------------------------------------------------------- /** アクセスポイント情報のデバッグ用表示関数 @@ -111,6 +125,10 @@ static void DumpWDSApInfo( WDSApInfo *apinfo ) /** スキャン開始前ウェイトステート関数 @param なし @return なし + @note + @LI このステートに入っている場合、WMからのコールバックが発生する可能性はない + @LI IF関数からのフラグ変化がイレギュラーな存在としてあるが + @LI Mutexのロックを行わなくても、処理中のフラグ変化による動作異常はない *///------------------------------------------------------------------------------ static void WDS_WrapperBeforeInitState( void ) { @@ -181,6 +199,8 @@ static void WDS_WrapperInitState( void ) @param arg 非同期処理の結果を格納するWMCallback型変数へのポインタ @return なし @note + @LI この関数が呼ばれる際のステートは常にWDSWRAPPER_STATE_WAITINIT + @LI 何の処理もメインスレッドは行っていない @LI 処理成功時は自動的にスキャン開始ステートへ @LI 処理失敗時は自動的にWDSラッパー解放ステートへ *///------------------------------------------------------------------------------ @@ -189,9 +209,6 @@ static void WDS_WrapperInitialize_CB( void *arg ) WMCallback *callback = (WMCallback *)arg; WDSWrapperCallbackParam param; - // ステート処理と重複処理しないため - OS_LockMutex( &g_wdswrapperwork->mutex ); - #ifdef WDSWRAPPER_DEBUGPRINT OS_TPrintf("WDS_Initialize_CB\n"); #endif @@ -204,7 +221,7 @@ static void WDS_WrapperInitialize_CB( void *arg ) param.errcode = WDSWRAPPER_ERRCODE_SUCCESS; // コールバック関数の呼び出し - g_wdswrapperwork->initparam.callback( ¶m ); + WDS_WrapperCallUserCallback( ¶m ); // 返り値に基づいてステートを変更 if( callback->errcode != WM_ERRCODE_SUCCESS ) @@ -216,15 +233,14 @@ static void WDS_WrapperInitialize_CB( void *arg ) // 連続スキャン開始時間の記録 g_wdswrapperwork->tickstart = OS_GetTick(); } - - // ステート処理と重複処理しないため - OS_UnlockMutex( &g_wdswrapperwork->mutex ); } //-------------------------------------------------------------------------------- /** スキャン開始ステート関数 @param なし @return なし + @note + @LI この関数が呼ばれる際は、WDSは初期化済みだがWDS_StartScan要因以外でコールバック関数は呼ばれない *///------------------------------------------------------------------------------ static void WDS_WrapperScanState( void ) { @@ -256,6 +272,9 @@ static void WDS_WrapperScanState( void ) /** スキャン完了待ちステート関数 @param なし @return なし + @note + @LI このステートの間は外部IFからのキャンセルを受け付ける + @LI この処理の中でフラグが変化しても、動作は結局同じなのでMutexロックはしない *///------------------------------------------------------------------------------ static void WDS_WrapperWaitScanState( void ) { @@ -272,6 +291,7 @@ static void WDS_WrapperWaitScanState( void ) @param arg 非同期処理の結果を格納するWMCallback型変数へのポインタ @return なし @note + @LI ユーザー中断が原因で、ステートがWDSWRAPPER_STATE_WAITSCANではない場合がある @LI 処理成功時はスキャン時間に基づいてIDLEかスキャン前ウェイトステートへ @LI 処理失敗時はスキャン停止後WDSラッパー解放ステートへ *///------------------------------------------------------------------------------ @@ -283,19 +303,19 @@ static void WDS_WrapperStartScan_CB( void *arg ) #endif WDSWrapperCallbackParam param; - // ステート処理と重複処理しないため - OS_LockMutex( &g_wdswrapperwork->mutex ); - #ifdef WDSWRAPPER_DEBUGPRINT OS_Printf("*** WDS_WrapperStartScan_CB\n"); #endif + + // ライブラリがすでに解放済みである場合に備える + if( g_wdswrapperwork == NULL ) + return; // 外部からの停止等の理由でコールバック待ちステートでない場合には何もしない if( g_wdswrapperwork->state != WDSWRAPPER_STATE_WAITSCAN ) { #ifdef WDSWRAPPER_DEBUGPRINT OS_Printf("state != WDSWRAPPER_STATE_WAITSCAN\n"); #endif - OS_UnlockMutex( &g_wdswrapperwork->mutex ); return; } @@ -309,7 +329,7 @@ static void WDS_WrapperStartScan_CB( void *arg ) param.errcode = WDSWRAPPER_ERRCODE_FAILURE; // コールバック関数の呼び出し - g_wdswrapperwork->initparam.callback( ¶m ); + WDS_WrapperCallUserCallback( ¶m ); // ただちにスキャン停止ステートへ g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN; @@ -317,9 +337,6 @@ static void WDS_WrapperStartScan_CB( void *arg ) // 最終的にTERMINATEステートに入るよう設定 g_wdswrapperwork->terminate = TRUE; - // ステート処理と重複処理しないため - OS_UnlockMutex( &g_wdswrapperwork->mutex ); - return; } else { @@ -349,7 +366,7 @@ static void WDS_WrapperStartScan_CB( void *arg ) param.errcode = WDSWRAPPER_ERRCODE_SUCCESS; // コールバック関数の呼び出し - g_wdswrapperwork->initparam.callback( ¶m ); + WDS_WrapperCallUserCallback( ¶m ); // 十分長い時間スキャンしたのでスキャン中断ステートへ g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN; @@ -360,14 +377,11 @@ static void WDS_WrapperStartScan_CB( void *arg ) param.errcode = WDSWRAPPER_ERRCODE_SUCCESS; // コールバック関数の呼び出し - g_wdswrapperwork->initparam.callback( ¶m ); + WDS_WrapperCallUserCallback( ¶m ); // ただちにスキャン開始ステートへ g_wdswrapperwork->state = WDSWRAPPER_STATE_SCAN; } - - // ステート処理と重複処理しないため - OS_UnlockMutex( &g_wdswrapperwork->mutex ); } //-------------------------------------------------------------------------------- @@ -414,6 +428,7 @@ static void WDS_WrapperEndScanState( void ) @param arg 非同期処理の結果を格納するWMCallback型変数へのポインタ @return なし @note + @LI このコールバックが呼ばれる際は、ステートは必ずWDSWRAPPER_STATE_WAITENDSCAN @LI 処理成功時は自動的にWDS解放ステートへ @LI 処理失敗時は自動的に再度スキャン停止ステートへ *///------------------------------------------------------------------------------ @@ -421,9 +436,6 @@ static void WDS_WrapperEndScan_CB(void *arg) { WMCallback *callback = (WMCallback *)arg; - // ステート処理と重複処理しないため - OS_LockMutex( &g_wdswrapperwork->mutex ); - #ifdef WDSWRAPPER_DEBUGPRINT OS_TPrintf("WDS_WrapperEndScan_CB\n"); #endif @@ -443,9 +455,6 @@ static void WDS_WrapperEndScan_CB(void *arg) // スキャン停止完了したら自動的にWDS解放ステートへ g_wdswrapperwork->state = WDSWRAPPER_STATE_END; } - - // ステート処理と重複処理しないため - OS_UnlockMutex( &g_wdswrapperwork->mutex ); } //-------------------------------------------------------------------------------- @@ -497,9 +506,6 @@ static void WDS_WrapperEnd_CB( void *arg ) #pragma unused(arg) WDSWrapperCallbackParam param; - // ステート処理と重複処理しないため - OS_LockMutex( &g_wdswrapperwork->mutex ); - #ifdef WDSWRAPPER_DEBUGPRINT OS_TPrintf("WDS_WrapperEnd_CB\n"); #endif @@ -519,21 +525,19 @@ static void WDS_WrapperEnd_CB( void *arg ) param.errcode = WDSWRAPPER_ERRCODE_SUCCESS; // コールバック関数の呼び出し - g_wdswrapperwork->initparam.callback( ¶m ); + WDS_WrapperCallUserCallback( ¶m ); } else { g_wdswrapperwork->state = WDSWRAPPER_STATE_BEFOREINIT; } - - - // ステート処理と重複処理しないため - OS_UnlockMutex( &g_wdswrapperwork->mutex ); } //-------------------------------------------------------------------------------- /** アイドルステート関数 @param なし @return なし + @LI このステートの間は外部IFからのスキャン開始とライブラリ解放を受け付ける + @LI この処理の中でフラグが変化しても、動作は結局同じなのでMutexロックはしない *///------------------------------------------------------------------------------ static void WDS_WrapperIdleState( void ) { @@ -562,12 +566,12 @@ static void WDS_WrapperThreadFunc( void *arg ) g_wdswrapperwork->state = WDSWRAPPER_STATE_INIT; while( 1 ) { - OS_Sleep(20); + OS_Sleep( 20 ); // ステートにより処理を分岐(ステート処理中はmutexによりlockが行われる) - OS_LockMutex( &g_wdswrapperwork->mutex ); if( g_wdswrapperwork->state == WDSWRAPPER_STATE_TERMINATE ) break; + OS_Sleep( 20 ); switch( g_wdswrapperwork->state ) { case WDSWRAPPER_STATE_BEFOREINIT: WDS_WrapperBeforeInitState(); break; @@ -582,7 +586,6 @@ static void WDS_WrapperThreadFunc( void *arg ) case WDSWRAPPER_STATE_IDLE: WDS_WrapperIdleState(); break; case WDSWRAPPER_STATE_TERMINATE: break; } - OS_UnlockMutex( &g_wdswrapperwork->mutex ); } // コールバックパラメータの設定 @@ -590,7 +593,7 @@ static void WDS_WrapperThreadFunc( void *arg ) param.errcode = WDSWRAPPER_ERRCODE_SUCCESS; // コールバック関数の呼び出し - g_wdswrapperwork->initparam.callback( ¶m ); + WDS_WrapperCallUserCallback( ¶m ); } //-------------------------------------------------------------------------------- @@ -658,9 +661,6 @@ WDSWrapperErrCode WDS_WrapperInitialize( WDSWrapperInitializeParam param ) // パラメータのコピー g_wdswrapperwork->initparam = param; - // mutexの初期化 - OS_InitMutex( &g_wdswrapperwork->mutex ); - // スレッドの生成 OS_CreateThread( &g_wdswrapperwork->thread, WDS_WrapperThreadFunc, @@ -711,18 +711,13 @@ WDSWrapperErrCode WDS_WrapperCleanup( void ) if( g_wdswrapperwork == NULL ) return WDSWRAPPER_ERRCODE_UNINITIALIZED; - OS_LockMutex( &g_wdswrapperwork->mutex ); - // 解放処理実行中をチェック if( g_wdswrapperwork->terminate == TRUE ) { - OS_UnlockMutex( &g_wdswrapperwork->mutex ); return WDSWRAPPER_ERRCODE_OPERATING; } g_wdswrapperwork->terminate = TRUE; - OS_UnlockMutex( &g_wdswrapperwork->mutex ); - return WDSWRAPPER_ERRCODE_SUCCESS; } @@ -742,24 +737,18 @@ WDSWrapperErrCode WDS_WrapperStartScan( void ) if( g_wdswrapperwork == NULL ) return WDSWRAPPER_ERRCODE_UNINITIALIZED; - OS_LockMutex( &g_wdswrapperwork->mutex ); - // ステートがIDLEかBEFOREINITであることを確認 if( g_wdswrapperwork->state != WDSWRAPPER_STATE_IDLE && g_wdswrapperwork->state != WDSWRAPPER_STATE_BEFOREINIT ) { - OS_UnlockMutex( &g_wdswrapperwork->mutex ); return WDSWRAPPER_ERRCODE_FAILURE; } // 再スタート処理実行中をチェック if( g_wdswrapperwork->restart == TRUE ) { - OS_UnlockMutex( &g_wdswrapperwork->mutex ); return WDSWRAPPER_ERRCODE_OPERATING; } g_wdswrapperwork->restart = TRUE; - OS_UnlockMutex( &g_wdswrapperwork->mutex ); - return WDSWRAPPER_ERRCODE_SUCCESS; } @@ -780,18 +769,13 @@ WDSWrapperErrCode WDS_WrapperStopScan( void ) if( g_wdswrapperwork == NULL ) return WDSWRAPPER_ERRCODE_UNINITIALIZED; - OS_LockMutex( &g_wdswrapperwork->mutex ); - // 間欠受信停止処理実行中をチェック if( g_wdswrapperwork->idle == TRUE ) { - OS_UnlockMutex( &g_wdswrapperwork->mutex ); return WDSWRAPPER_ERRCODE_OPERATING; } g_wdswrapperwork->idle = TRUE; - OS_UnlockMutex( &g_wdswrapperwork->mutex ); - return WDSWRAPPER_ERRCODE_SUCCESS; } @@ -802,6 +786,7 @@ WDSWrapperErrCode WDS_WrapperStopScan( void ) @return WDSWRAPPER_ERRCODE_SUCCESS: 直前に完了した間欠受信で有効な親機ビーコンを受け取った @return WDSWRAPPER_ERRCODE_FAILURE: 直前に完了した間欠受信で有効な親機ビーコンを受け取っていない @return WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない + @note ライブラリ初期化時に指定したコールバック関数の中でのみ呼び出して下さい *///------------------------------------------------------------------------------ WDSWrapperErrCode WDS_WrapperCheckValidBeacon( void ) { @@ -812,7 +797,9 @@ WDSWrapperErrCode WDS_WrapperCheckValidBeacon( void ) if( g_wdswrapperwork == NULL ) return WDSWRAPPER_ERRCODE_UNINITIALIZED; - OS_LockMutex( &g_wdswrapperwork->mutex ); + // コールバック関数からの呼び出しかを確認 + if( g_wdswrapperwork->callingback != TRUE ) + return WDSWRAPPER_ERRCODE_FAILURE; if( g_wdswrapperwork->briefapinfonum > 0 ) { for( i = 0; i < g_wdswrapperwork->briefapinfonum; i++ ) { @@ -824,7 +811,6 @@ WDSWrapperErrCode WDS_WrapperCheckValidBeacon( void ) } } } - OS_UnlockMutex( &g_wdswrapperwork->mutex ); return ret; } diff --git a/build/libraries_sysmenu/wds/readme.txt b/build/libraries_sysmenu/wds/readme.txt index 46466ad2..f001ceef 100644 --- a/build/libraries_sysmenu/wds/readme.txt +++ b/build/libraries_sysmenu/wds/readme.txt @@ -1,6 +1,6 @@ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■ ■ -■ TWLWDSライブラリ 2008/6/26版 ■ +■ TWLWDSライブラリ 2008/7/ 3版 ■ ■ ■ ■ ネットワーク開発部からのお知らせ ■ ■ ■ @@ -27,6 +27,9 @@ ●変更履歴 +2008/06/26 20080703版 +・WDSラッパー内部で行っていた排他制御に関連して発生していたフリーズ問題を修正しました。 + 2008/06/26 20080626版 ・WDSライブラリを簡易に使用するためのWDSWrapperが追加されました。 @@ -46,3 +49,6 @@ infoflag infoflagのWDS_INFOFLAG_NOTIFYビットが1にセットされたビーコンを 受信した場合のみ行ってください。 ・なお、WDSWrapperはWDS_INFOFLAG_NOTIFYに関連した処理を内部で自動的に行います。 +WDS_WrapperCheckValidBeacon関数について +・20080703バージョン以降は、WDS_WrapperCheckValidBeacon関数は初期化時に指定した + コールバック関数の中からのみ呼び出すことができます。 diff --git a/build/tests/WDSWrapperTest/src/main.c b/build/tests/WDSWrapperTest/src/main.c index a469ab42..30bbc726 100644 --- a/build/tests/WDSWrapperTest/src/main.c +++ b/build/tests/WDSWrapperTest/src/main.c @@ -128,7 +128,7 @@ void NitroMain(void) WDS_WrapperStopScan(); if( ( lastpad ^ nowpad ) & PAD_BUTTON_X && !( nowpad & PAD_BUTTON_X ) ) { // WDSWrapper初期化と動作開始 - param.threadprio = 10; + param.threadprio = 20; param.dmano = 1; param.callback = Callback_WDSWrapper; diff --git a/include/sysmenu/WDS.h b/include/sysmenu/WDS.h index ac1c841d..965eecfa 100644 --- a/include/sysmenu/WDS.h +++ b/include/sysmenu/WDS.h @@ -23,6 +23,11 @@ extern "C" { //----------------------------------------------------- // Macros //----------------------------------------------------- +/** + @brief デバッグ表示指定 +*/ +//#define WDS_DEBUGPRINT + /** @brief ホットスポット名エンコード情報 */ @@ -48,7 +53,7 @@ extern "C" { /** @brief 親機AP情報保持最大数 */ -#define WDS_APINFO_MAX 16 +#define WDS_APINFO_MAX 4 /** @brief 親機情報フラグ定義 @@ -68,12 +73,12 @@ typedef void (*WDSCallbackFunc)(void *arg); // Structs //----------------------------------------------------- /** - @brief 親機から送られてくるAPビーコンの内容 + @brief 親機から送られてくるAPビーコン */ typedef struct WDSApInfo { u8 ssid[ WDS_SSID_BUF_SIZE ]; ///< 親機が接続するAPのSSID - u8 apnum[ WDS_APNUM_BUF_SIZE ]; ///< 本来はAPのSSIDに埋め込まれているAP識別番号 + u8 apnum[ WDS_APNUM_BUF_SIZE ]; ///< Wi-FiステーションのAPのSSIDに埋め込まれているAP識別番号と同等の文字列 u16 hotspotid; ///< ホットスポットの認証方式を示すフラグ+hotspotnameのエンコード情報 u8 hotspotname[ WDS_HOTSPOTNAME_BUF_SIZE ]; ///< UTF-8あるいはUTF-16で記述されたホットスポットの名前 u8 wepkey[ WDS_WEPKEY_BUF_SIZE ]; ///< 親機が接続するAPのWEP キー @@ -86,16 +91,15 @@ typedef struct WDSApInfo } WDSApInfo; /** - @brief アプリケーションから閲覧可能なAPビーコンの内容 + @brief アプリケーションが参照するAPビーコン構造体 */ typedef struct WDSBriefApInfo { // WDSライブラリによって生成される値 - BOOL isvalid; + BOOL isvalid; ///< apinfoに有効な値が代入されていればTRUE u16 rssi; ///< 電波強度 - // AP情報ビーコンそのもの - WDSApInfo apinfo; + WDSApInfo apinfo; ///< 親機から送られてくるAPビーコン } WDSBriefApInfo; //----------------------------------------------------- diff --git a/man/WDS_Wrapper/html/_w_d_s_wrapper_8c.html b/man/WDS_Wrapper/html/_w_d_s_wrapper_8c.html index 19a07e02..3c49778e 100644 --- a/man/WDS_Wrapper/html/_w_d_s_wrapper_8c.html +++ b/man/WDS_Wrapper/html/_w_d_s_wrapper_8c.html @@ -102,6 +102,7 @@ WDSWRAPPER_ERRCODE_UNINITIALIZED: WDS繝ゥ繝繝代シ繝ゥ繧、繝悶Λ繝ェ縺悟晄悄蛹悶&
謌サ繧雁、:
WDSWRAPPER_ERRCODE_SUCCESS: 逶エ蜑阪↓螳御コ縺励◆髢捺ャ蜿嶺ソ。縺ァ譛牙柑縺ェ隕ェ讖溘ン繝シ繧ウ繝ウ繧貞女縺大叙縺」縺

WDSWRAPPER_ERRCODE_FAILURE: 逶エ蜑阪↓螳御コ縺励◆髢捺ャ蜿嶺ソ。縺ァ譛牙柑縺ェ隕ェ讖溘ン繝シ繧ウ繝ウ繧貞女縺大叙縺」縺ヲ縺縺ェ縺

WDSWRAPPER_ERRCODE_UNINITIALIZED: WDS繝ゥ繝繝代シ繝ゥ繧、繝悶Λ繝ェ縺悟晄悄蛹悶&繧後※縺縺ェ縺

+
隕壹∴譖ク縺:
繝ゥ繧、繝悶Λ繝ェ蛻晄悄蛹匁凾縺ォ謖螳壹@縺溘さ繝シ繝ォ繝舌ャ繧ッ髢「謨ー縺ョ荳ュ縺ァ縺ョ縺ソ蜻シ縺ウ蜃コ縺励※荳九&縺

@@ -274,7 +275,7 @@ WDSWRAPPER_ERRCODE_UNINITIALIZED: WDS繝ゥ繝繝代シ繝ゥ繧、繝悶Λ繝ェ縺悟晄悄蛹悶&

-


WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
diff --git a/man/WDS_Wrapper/html/_w_d_s_wrapper_8h.html b/man/WDS_Wrapper/html/_w_d_s_wrapper_8h.html index 2903fc0b..07e28641 100644 --- a/man/WDS_Wrapper/html/_w_d_s_wrapper_8h.html +++ b/man/WDS_Wrapper/html/_w_d_s_wrapper_8h.html @@ -383,6 +383,7 @@ WDSWRAPPER_ERRCODE_UNINITIALIZED: WDS繝ゥ繝繝代シ繝ゥ繧、繝悶Λ繝ェ縺悟晄悄蛹悶&
謌サ繧雁、:
WDSWRAPPER_ERRCODE_SUCCESS: 逶エ蜑阪↓螳御コ縺励◆髢捺ャ蜿嶺ソ。縺ァ譛牙柑縺ェ隕ェ讖溘ン繝シ繧ウ繝ウ繧貞女縺大叙縺」縺

WDSWRAPPER_ERRCODE_FAILURE: 逶エ蜑阪↓螳御コ縺励◆髢捺ャ蜿嶺ソ。縺ァ譛牙柑縺ェ隕ェ讖溘ン繝シ繧ウ繝ウ繧貞女縺大叙縺」縺ヲ縺縺ェ縺

WDSWRAPPER_ERRCODE_UNINITIALIZED: WDS繝ゥ繝繝代シ繝ゥ繧、繝悶Λ繝ェ縺悟晄悄蛹悶&繧後※縺縺ェ縺

+
隕壹∴譖ク縺:
繝ゥ繧、繝悶Λ繝ェ蛻晄悄蛹匁凾縺ォ謖螳壹@縺溘さ繝シ繝ォ繝舌ャ繧ッ髢「謨ー縺ョ荳ュ縺ァ縺ョ縺ソ蜻シ縺ウ蜃コ縺励※荳九&縺

@@ -555,7 +556,7 @@ WDSWRAPPER_ERRCODE_UNINITIALIZED: WDS繝ゥ繝繝代シ繝ゥ繧、繝悶Λ繝ェ縺悟晄悄蛹悶&

-


WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
diff --git a/man/WDS_Wrapper/html/annotated.html b/man/WDS_Wrapper/html/annotated.html index d0bf4d82..a1a2a331 100644 --- a/man/WDS_Wrapper/html/annotated.html +++ b/man/WDS_Wrapper/html/annotated.html @@ -28,7 +28,7 @@ WDSWrapperWorkWDS繝ゥ繝繝代シ縺ョ繝ッ繝シ繧ッ鬆伜沺 -
WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
diff --git a/man/WDS_Wrapper/html/classes.html b/man/WDS_Wrapper/html/classes.html index e36c75a8..15908992 100644 --- a/man/WDS_Wrapper/html/classes.html +++ b/man/WDS_Wrapper/html/classes.html @@ -27,7 +27,7 @@
  W  
WDSWrapperCallbackParam   WDSWrapperInitializeParam   WDSWrapperWork   

-


WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
diff --git a/man/WDS_Wrapper/html/files.html b/man/WDS_Wrapper/html/files.html index ece15a67..90f3c9dc 100644 --- a/man/WDS_Wrapper/html/files.html +++ b/man/WDS_Wrapper/html/files.html @@ -26,7 +26,7 @@ src/WDSWrapper.cWDS繝ゥ繧、繝悶Λ繝ェ縺ョ繝ゥ繝繝代シ -
WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
diff --git a/man/WDS_Wrapper/html/functions.html b/man/WDS_Wrapper/html/functions.html index b38249c8..1cb49abb 100644 --- a/man/WDS_Wrapper/html/functions.html +++ b/man/WDS_Wrapper/html/functions.html @@ -40,6 +40,8 @@
  • callback : WDSWrapperInitializeParam , WDSWrapperCallbackParam +
  • callingback +: WDSWrapperWork
  • deliverinfo : WDSWrapperWork
  • dmano @@ -52,8 +54,6 @@ : WDSWrapperWork
  • initparam : WDSWrapperWork -
  • mutex -: WDSWrapperWork
  • restart : WDSWrapperWork
  • stack @@ -72,7 +72,7 @@ : WDSWrapperWork -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/functions_vars.html b/man/WDS_Wrapper/html/functions_vars.html index 180a2643..ec0ee8a1 100644 --- a/man/WDS_Wrapper/html/functions_vars.html +++ b/man/WDS_Wrapper/html/functions_vars.html @@ -40,6 +40,8 @@
  • callback : WDSWrapperInitializeParam , WDSWrapperCallbackParam +
  • callingback +: WDSWrapperWork
  • deliverinfo : WDSWrapperWork
  • dmano @@ -52,8 +54,6 @@ : WDSWrapperWork
  • initparam : WDSWrapperWork -
  • mutex -: WDSWrapperWork
  • restart : WDSWrapperWork
  • stack @@ -72,7 +72,7 @@ : WDSWrapperWork -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/globals.html b/man/WDS_Wrapper/html/globals.html index 6fd7686f..5703bfc2 100644 --- a/man/WDS_Wrapper/html/globals.html +++ b/man/WDS_Wrapper/html/globals.html @@ -125,7 +125,7 @@ : WDSWrapper.h -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/globals_defs.html b/man/WDS_Wrapper/html/globals_defs.html index 76b3697d..2006cfd1 100644 --- a/man/WDS_Wrapper/html/globals_defs.html +++ b/man/WDS_Wrapper/html/globals_defs.html @@ -42,7 +42,7 @@ : WDSWrapper.h -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/globals_enum.html b/man/WDS_Wrapper/html/globals_enum.html index 74f036b9..b1bc810e 100644 --- a/man/WDS_Wrapper/html/globals_enum.html +++ b/man/WDS_Wrapper/html/globals_enum.html @@ -42,7 +42,7 @@ : WDSWrapper.h -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/globals_eval.html b/man/WDS_Wrapper/html/globals_eval.html index 1a189e5d..58c88eec 100644 --- a/man/WDS_Wrapper/html/globals_eval.html +++ b/man/WDS_Wrapper/html/globals_eval.html @@ -78,7 +78,7 @@ : WDSWrapper.h -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/globals_func.html b/man/WDS_Wrapper/html/globals_func.html index c6c11670..3773aa77 100644 --- a/man/WDS_Wrapper/html/globals_func.html +++ b/man/WDS_Wrapper/html/globals_func.html @@ -60,7 +60,7 @@ , WDSWrapper.h -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/globals_type.html b/man/WDS_Wrapper/html/globals_type.html index 0041fdf2..76f01ed7 100644 --- a/man/WDS_Wrapper/html/globals_type.html +++ b/man/WDS_Wrapper/html/globals_type.html @@ -42,7 +42,7 @@ : WDSWrapper.h -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/index.html b/man/WDS_Wrapper/html/index.html index f53075a3..335f3bf6 100644 --- a/man/WDS_Wrapper/html/index.html +++ b/man/WDS_Wrapper/html/index.html @@ -18,7 +18,7 @@

    WDSWrapper 繝峨く繝・繝。繝ウ繝

    -


    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/struct_w_d_s_wrapper_callback_param.html b/man/WDS_Wrapper/html/struct_w_d_s_wrapper_callback_param.html index 4898beef..528f358c 100644 --- a/man/WDS_Wrapper/html/struct_w_d_s_wrapper_callback_param.html +++ b/man/WDS_Wrapper/html/struct_w_d_s_wrapper_callback_param.html @@ -76,7 +76,7 @@ WDS繝ゥ繝繝代シ縺悟他縺ウ蜃コ縺吶さ繝シ繝ォ繝舌ャ繧ッ髢「謨ー縺ォ荳弱∴繧峨l繧句シ墓焚
    縺薙ョ讒矩菴薙ョ隱ャ譏弱ッ谺。縺ョ繝輔ぃ繧、繝ォ縺九i逕滓舌&繧後∪縺励◆: -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/struct_w_d_s_wrapper_initialize_param.html b/man/WDS_Wrapper/html/struct_w_d_s_wrapper_initialize_param.html index e998a8d8..fb89ee4c 100644 --- a/man/WDS_Wrapper/html/struct_w_d_s_wrapper_initialize_param.html +++ b/man/WDS_Wrapper/html/struct_w_d_s_wrapper_initialize_param.html @@ -136,7 +136,7 @@ WDS繝ゥ繝繝代シ縺御スソ逕ィ縺吶k繧「繝ュ繧ア繝シ繧ソ
    縺薙ョ讒矩菴薙ョ隱ャ譏弱ッ谺。縺ョ繝輔ぃ繧、繝ォ縺九i逕滓舌&繧後∪縺励◆: -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6
    diff --git a/man/WDS_Wrapper/html/struct_w_d_s_wrapper_work.html b/man/WDS_Wrapper/html/struct_w_d_s_wrapper_work.html index bd765b73..36026951 100644 --- a/man/WDS_Wrapper/html/struct_w_d_s_wrapper_work.html +++ b/man/WDS_Wrapper/html/struct_w_d_s_wrapper_work.html @@ -34,9 +34,6 @@ OSThread thread  WDS繝ゥ繝繝代シ縺御スソ逕ィ縺吶k繧ケ繝ャ繝繝画ァ矩菴
    -OSMutex mutex - - WDS繝ゥ繝繝代シ縺御スソ逕ィ縺吶kmutex
    u8 * wdswork  WDS縺御スソ逕ィ縺吶k繝ッ繝シ繧ッ繧ィ繝ェ繧「
    @@ -67,6 +64,9 @@ OSDeliverArgInfo deliverinfo  TWL逕ィ繧「繝励Μ髢灘シ墓焚繝ッ繝シ繧ッ繧ィ繝ェ繧「
    +BOOL callingback + + 繧ウ繝シ繝ォ繝舌ャ繧ッ髢「謨ー蜻シ縺ウ蜃コ縺嶺クュ縺ッTRUE

    隱ャ譏

    WDS繝ゥ繝繝代シ縺ョ繝ッ繝シ繧ッ鬆伜沺

    讒矩菴

    @@ -102,23 +102,6 @@ WDS繝ゥ繝繝代シ縺御スソ逕ィ縺吶k繧ケ繧ソ繝繧ッ WDS繝ゥ繝繝代シ縺御スソ逕ィ縺吶k繧ケ繝ャ繝繝画ァ矩菴

    - -

    - -

    -
    - - - - -
    OSMutex WDSWrapperWork::mutex
    -
    -
    - -

    -WDS繝ゥ繝繝代シ縺御スソ逕ィ縺吶kmutex -

    -

    @@ -289,12 +272,29 @@ WDS繝ゥ繝繝代シ縺ョ繧ケ繝繝シ繝 TWL逕ィ繧「繝励Μ髢灘シ墓焚繝ッ繝シ繧ッ繧ィ繝ェ繧「

    + +

    + +

    +
    + + + + +
    BOOL WDSWrapperWork::callingback
    +
    +
    + +

    +繧ウ繝シ繝ォ繝舌ャ繧ッ髢「謨ー蜻シ縺ウ蜃コ縺嶺クュ縺ッTRUE +

    +


    縺薙ョ讒矩菴薙ョ隱ャ譏弱ッ谺。縺ョ繝輔ぃ繧、繝ォ縺九i逕滓舌&繧後∪縺励◆: -
    WDSWrapper縺ォ蟇セ縺励※Thu Jun 26 22:00:52 2008縺ォ逕滓舌&繧後∪縺励◆縲  +
    WDSWrapper縺ォ蟇セ縺励※Thu Jul 3 18:05:09 2008縺ォ逕滓舌&繧後∪縺励◆縲  doxygen 1.5.6