Changeset 318 for asp3_gr_sakura/trunk/kernel/wait.h
- Timestamp:
- Aug 3, 2017, 10:46:41 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_gr_sakura/trunk/kernel/wait.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r317 r318 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 47 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * å¾ 60 ã¡ç¶æ 61 管çã¢ã¸ã¥ã¼ã« 44 * 待ち状態管理モジュール 62 45 */ 63 46 … … 71 54 72 55 /* 73 * ã¿ã¹ã¯ã®åªå 74 度é ã®å¾ 75 ã¡ãã¥ã¼ã¸ã®æ¿å 76 ¥ 77 * 78 * p_tcbã§æå®ãããã¿ã¹ã¯ãï¼ã¿ã¹ã¯åªå 79 度é ã®ãã¥ã¼p_queueã«æ¿å 80 ¥ããï¼ 81 * ãã¥ã¼ã®ä¸ã«åãåªå 82 度ã®ã¿ã¹ã¯ãããå ´åã«ã¯ï¼ãã®æå¾ã«æ¿å 83 ¥ããï¼ 56 * タスクの優先度順の待ちキューへの挿入 57 * 58 * p_tcbで指定されるタスクを,タスク優先度順のキューp_queueに挿入する. 59 * キューの中に同じ優先度のタスクがある場合には,その最後に挿入する. 84 60 */ 85 61 Inline void … … 99 75 100 76 /* 101 * å¾ 102 ã¡ç¶æ 103 ã¸ã®é·ç§» 104 * 105 * å®è¡ä¸ã®ã¿ã¹ã¯ãå¾ 106 ã¡ç¶æ 107 ã«é·ç§»ãããï¼å 108 ·ä½çã«ã¯ï¼å®è¡ä¸ã®ã¿ã¹ã¯ã 109 * ã¬ãã£ãã¥ã¼ããåé¤ãï¼TCBã®p_winfoãã£ã¼ã«ãï¼WINFOã®p_tmevtbãã£ã¼ 110 * ã«ããè¨å®ããï¼ 77 * 待ち状態への遷移 78 * 79 * 実行中のタスクを待ち状態に遷移させる.具体的には,実行中のタスクを 80 * レディキューから削除し,TCBのp_winfoフィールド,WINFOのp_tmevtbフィー 81 * ルドを設定する. 111 82 */ 112 83 Inline void … … 119 90 120 91 /* 121 * å¾ 122 ã¡ç¶æ 123 ã¸ã®é·ç§»ï¼ã¿ã¤ã ã¢ã¦ãæå®ï¼ 124 * 125 * å®è¡ä¸ã®ã¿ã¹ã¯ãï¼ã¿ã¤ã ã¢ã¦ãæå®ä»ãã§å¾ 126 ã¡ç¶æ 127 ã«é·ç§»ãããï¼å 128 ·ä½ 129 * çã«ã¯ï¼å®è¡ä¸ã®ã¿ã¹ã¯ãã¬ãã£ãã¥ã¼ããåé¤ãï¼TCBã®p_winfoãã£ã¼ 130 * ã«ãï¼WINFOã®p_tmevtbãã£ã¼ã«ããè¨å®ããï¼ã¾ãï¼ã¿ã¤ã ã¤ãã³ãã 131 * ããã¯ãç»é²ããï¼ 92 * 待ち状態への遷移(タイムアウト指定) 93 * 94 * 実行中のタスクを,タイムアウト指定付きで待ち状態に遷移させる.具体 95 * 的には,実行中のタスクをレディキューから削除し,TCBのp_winfoフィー 96 * ルド,WINFOのp_tmevtbフィールドを設定する.また,タイムイベントブ 97 * ロックを登録する. 132 98 */ 133 99 extern void make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout); 134 100 135 101 /* 136 * å¾ 137 ã¡è§£é¤ã®ããã®ã¿ã¹ã¯ç¶æ 138 ã®æ´æ° 139 * 140 * p_tcbã§æå®ãããã¿ã¹ã¯ãï¼å¾ 141 ã¡è§£é¤ããããã¿ã¹ã¯ç¶æ 142 ãæ´æ°ããï¼ 143 * å¾ 144 ã¡è§£é¤ããã¿ã¹ã¯ãå®è¡ã§ããç¶æ 145 ã«ãªãå ´åã¯ï¼ã¬ãã£ãã¥ã¼ã«ã¤ãª 146 * ãï¼ 102 * 待ち解除のためのタスク状態の更新 103 * 104 * p_tcbで指定されるタスクを,待ち解除するようタスク状態を更新する. 105 * 待ち解除するタスクが実行できる状態になる場合は,レディキューにつな 106 * ぐ. 147 107 */ 148 108 Inline void … … 153 113 if (!TSTAT_SUSPENDED(p_tcb->tstat)) { 154 114 /* 155 * å¾ 156 ã¡ç¶æ 157 ããå®è¡ã§ããç¶æ 158 ã¸ã®é·ç§» 115 * 待ち状態から実行できる状態への遷移 159 116 */ 160 117 p_tcb->tstat = TS_RUNNABLE; … … 164 121 else { 165 122 /* 166 * äºéå¾ 167 ã¡ç¶æ 168 ããå¼·å¶å¾ 169 ã¡ç¶æ 170 ã¸ã®é·ç§» 123 * 二重待ち状態から強制待ち状態への遷移 171 124 */ 172 125 p_tcb->tstat = TS_SUSPENDED; … … 176 129 177 130 /* 178 * ãªãã¸ã§ã¯ãå¾ 179 ã¡ãã¥ã¼ããã®åé¤ 180 * 181 * p_tcbã§æå®ãããã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾ 182 ã¡ãã¥ã¼ã«ã¤ 183 * ãªããã¦ããã°ï¼å¾ 184 ã¡ãã¥ã¼ããåé¤ããï¼ 131 * オブジェクト待ちキューからの削除 132 * 133 * p_tcbで指定されるタスクが,同期・通信オブジェクトの待ちキューにつ 134 * ながれていれば,待ちキューから削除する. 185 135 */ 186 136 Inline void … … 193 143 194 144 /* 195 * æéå¾ 196 ã¡ã®ããã®ã¿ã¤ã ã¤ãã³ããããã¯ã®ç»é²è§£é¤ 197 * 198 * p_tcbã§æå®ãããã¿ã¹ã¯ã«å¯¾ãã¦ï¼æéå¾ 199 ã¡ã®ããã®ã¿ã¤ã ã¤ãã³ãã 200 * ããã¯ãç»é²ããã¦ããã°ï¼ãããç»é²è§£é¤ããï¼ 145 * 時間待ちのためのタイムイベントブロックの登録解除 146 * 147 * p_tcbで指定されるタスクに対して,時間待ちのためのタイムイベントブ 148 * ロックが登録されていれば,それを登録解除する. 201 149 */ 202 150 Inline void … … 209 157 210 158 /* 211 * å¾ 212 ã¡è§£é¤ 213 * 214 * p_tcbã§æå®ãããã¿ã¹ã¯ã®å¾ 215 ã¡ç¶æ 216 ã解é¤ããï¼å 217 ·ä½çã«ã¯ï¼ã¿ã¤ã 㤠218 * ãã³ããããã¯ãç»é²ããã¦ããã°ï¼ãããç»é²è§£é¤ããï¼ã¾ãï¼ã¿ã¹ã¯ 219 * ç¶æ 220 ãæ´æ°ãï¼å¾ 221 ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿å¤ãE_OKã¨ããï¼å¾ 222 ã¡ãã¥ã¼ 223 * ããã®åé¤ã¯è¡ããªãï¼ 159 * 待ち解除 160 * 161 * p_tcbで指定されるタスクの待ち状態を解除する.具体的には,タイムイ 162 * ベントブロックが登録されていれば,それを登録解除する.また,タスク 163 * 状態を更新し,待ち解除したタスクからの返値をE_OKとする.待ちキュー 164 * からの削除は行わない. 224 165 */ 225 166 extern void wait_complete(TCB *p_tcb); 226 167 227 168 /* 228 * ã¿ã¤ã ã¢ã¦ãã«ä¼´ãå¾ 229 ã¡è§£é¤ 230 * 231 * p_tcbã§æå®ãããã¿ã¹ã¯ãï¼å¾ 232 ã¡ãã¥ã¼ã«ã¤ãªããã¦ããã°å¾ 233 ã¡ãã¥ã¼ 234 * ããåé¤ãï¼ã¿ã¹ã¯ç¶æ 235 ãæ´æ°ããï¼ã¾ãï¼å¾ 236 ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿ 237 * å¤ãï¼wait_tmoutã§ã¯E_TMOUTï¼wait_tmout_okã§ã¯E_OKã¨ããï¼ 238 * 239 * wait_tmout_okã¯ï¼dly_tskã§ä½¿ãããã®ãã®ã§ï¼å¾ 240 ã¡ãã¥ã¼ããåé¤ãã 241 * å¦çãè¡ããªãï¼ 242 * 243 * ãããã®é¢æ°ãï¼ã¿ã¤ã ã¤ãã³ãã®ã³ã¼ã«ããã¯é¢æ°ã¨ãã¦ç¨ããããã® 244 * ãã®ã§ï¼å²è¾¼ã¿ãã³ãã©ããå¼ã³åºããããã¨ãæ³å®ãã¦ããï¼ 169 * タイムアウトに伴う待ち解除 170 * 171 * p_tcbで指定されるタスクが,待ちキューにつながれていれば待ちキュー 172 * から削除し,タスク状態を更新する.また,待ち解除したタスクからの返 173 * 値を,wait_tmoutではE_TMOUT,wait_tmout_okではE_OKとする. 174 * 175 * wait_tmout_okは,dly_tskで使うためのもので,待ちキューから削除する 176 * 処理を行わない. 177 * 178 * いずれの関数も,タイムイベントのコールバック関数として用いるための 179 * もので,割込みハンドラから呼び出されることを想定している. 245 180 */ 246 181 extern void wait_tmout(TCB *p_tcb); … … 248 183 249 184 /* 250 * å¾ 251 ã¡ãã¥ã¼ã®å 252 é ã®ã¿ã¹ã¯ID 253 * 254 * p_wait_queueã§æå®ããå¾ 255 ã¡ãã¥ã¼ã®å 256 é ã®ã¿ã¹ã¯IDãè¿ãï¼å¾ 257 ã¡ãã¥ã¼ 258 * ã空ã®å ´åã«ã¯ï¼TSK_NONEãè¿ãï¼ 185 * 待ちキューの先頭のタスクID 186 * 187 * p_wait_queueで指定した待ちキューの先頭のタスクIDを返す.待ちキュー 188 * が空の場合には,TSK_NONEを返す. 259 189 */ 260 190 Inline ID … … 270 200 271 201 /* 272 * åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãããã¯ã®å 273 ±éé¨åæä½ã«ã¼ãã³ 274 * 275 * åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãããã¯ã¨ç®¡çãããã¯ã®å 276 é é¨åã¯å 277 ± 278 * éã«ãªã£ã¦ããï¼ä»¥ä¸ã¯ï¼ãã®å 279 ±éé¨åãæ±ãããã®åããã³ã«ã¼ãã³ç¾¤ 280 * ã§ããï¼ 281 * 282 * è¤æ°ã®å¾ 283 ã¡ãã¥ã¼ãæã¤åæã»éä¿¡ãªãã¸ã§ã¯ãã®å ´åï¼å 284 é 以å¤ã®å¾ 285 ã¡ 286 * ãã¥ã¼ãæä½ããå ´åã«ã¯ï¼ãããã®ã«ã¼ãã³ã¯ä½¿ããªãï¼ã¾ãï¼ãªãã¸ã§ 287 * ã¯ãå±æ§ã®TA_TPRIããããåç 288 §ããã®ã§ï¼ãã®ããããä»ã®ç®çã«ä½¿ã£ã¦ 289 * ããå ´åãï¼ãããã®ã«ã¼ãã³ã¯ä½¿ããªãï¼ 290 */ 291 292 /* 293 * åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãããã¯ã®å 294 ±éé¨å 202 * 同期・通信オブジェクトの管理ブロックの共通部分操作ルーチン 203 * 204 * 同期・通信オブジェクトの初期化ブロックと管理ブロックの先頭部分は共 205 * 通になっている.以下は,その共通部分を扱うための型およびルーチン群 206 * である. 207 * 208 * 複数の待ちキューを持つ同期・通信オブジェクトの場合,先頭以外の待ち 209 * キューを操作する場合には,これらのルーチンは使えない.また,オブジェ 210 * クト属性のTA_TPRIビットを参照するので,このビットを他の目的に使って 211 * いる場合も,これらのルーチンは使えない. 212 */ 213 214 /* 215 * 同期・通信オブジェクトの初期化ブロックの共通部分 295 216 */ 296 217 typedef struct wait_object_initialization_block { 297 ATR wobjatr; /* ãªãã¸ã§ã¯ãå±æ§*/218 ATR wobjatr; /* オブジェクト属性 */ 298 219 } WOBJINIB; 299 220 300 221 /* 301 * åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãããã¯ã®å 302 ±éé¨å 222 * 同期・通信オブジェクトの管理ブロックの共通部分 303 223 */ 304 224 typedef struct wait_object_control_block { 305 QUEUE wait_queue; /* å¾ 306 ã¡ãã¥ã¼ */ 307 const WOBJINIB *p_wobjinib; /* åæåãããã¯ã¸ã®ãã¤ã³ã¿ */ 225 QUEUE wait_queue; /* 待ちキュー */ 226 const WOBJINIB *p_wobjinib; /* 初期化ブロックへのポインタ */ 308 227 } WOBJCB; 309 228 310 229 /* 311 * åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾ 312 ã¡æ 313 å ±ãããã¯ã®å 314 ±éé¨å 315 * 316 * ãã®æ§é ä½ã¯ï¼å¾ 317 ã¡æ 318 å ±ãããã¯ï¼WINFOï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨ 319 * èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ãããï¼WINFOãå 320 ±ç¨ä½ã§å®ç¾©ããã¦ããã 321 * ãã«ï¼1ã¤ã®ãã£ã¼ã«ãã¨ãã¦å«ãã¦ããï¼ 230 * 同期・通信オブジェクトの待ち情報ブロックの共通部分 231 * 232 * この構造体は,待ち情報ブロック(WINFO)を拡張(オブジェクト指向言 233 * 語の継承に相当)したものであるが,WINFOが共用体で定義されているた 234 * めに,1つのフィールドとして含めている. 322 235 */ 323 236 typedef struct wait_object_waiting_information { 324 WINFO winfo; /* æ¨æºã®å¾ 325 ã¡æ 326 å ±ããã㯠*/ 327 WOBJCB *p_wobjcb; /* å¾ 328 ã¡ãªãã¸ã§ã¯ãã®ç®¡çããã㯠*/ 237 WINFO winfo; /* 標準の待ち情報ブロック */ 238 WOBJCB *p_wobjcb; /* 待ちオブジェクトの管理ブロック */ 329 239 } WINFO_WOBJ; 330 240 331 241 /* 332 * åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾ 333 ã¡ç¶æ 334 ã¸ã®é·ç§» 242 * 同期・通信オブジェクトに対する待ち状態への遷移 335 243 * 336 * å®è¡ä¸ã®ã¿ã¹ã¯ãå¾ 337 ã¡ç¶æ 338 ã«é·ç§»ããï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾ 339 ã¡ãã¥ã¼ 340 * ã«ã¤ãªãï¼ã¾ãï¼å¾ 341 ã¡æ 342 å ±ãããã¯ï¼WINFOï¼ã®p_wobjcbãè¨å®ããï¼ 343 * wobj_make_wait_tmoutã¯ï¼ã¿ã¤ã ã¤ãã³ããããã¯ã®ç»é²ãè¡ãï¼ 244 * 実行中のタスクを待ち状態に遷移させ,同期・通信オブジェクトの待ちキュー 245 * につなぐ.また,待ち情報ブロック(WINFO)のp_wobjcbを設定する. 246 * wobj_make_wait_tmoutは,タイムイベントブロックの登録も行う. 344 247 */ 345 248 extern void wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo); … … 348 251 349 252 /* 350 * ã¿ã¹ã¯åªå 351 度å¤æ´æã®å¦ç 352 * 353 * åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾ 354 ã¡ç¶æ 355 ã«ããã¿ã¹ã¯ã®åªå 356 度ãå¤æ´ã 357 * ããå ´åã«ï¼å¾ 358 ã¡ãã¥ã¼ã®ä¸ã§ã®ã¿ã¹ã¯ã®ä½ç½®ãä¿®æ£ããï¼ 253 * タスク優先度変更時の処理 254 * 255 * 同期・通信オブジェクトに対する待ち状態にあるタスクの優先度が変更さ 256 * れた場合に,待ちキューの中でのタスクの位置を修正する. 359 257 */ 360 258 Inline void … … 368 266 369 267 /* 370 * å¾ 371 ã¡ãã¥ã¼ã®åæå 372 * 373 * å¾ 374 ã¡ãã¥ã¼ã«ã¤ãªããã¦ããã¿ã¹ã¯ããã¹ã¦å¾ 375 ã¡è§£é¤ããï¼å¾ 376 ã¡è§£é¤ãã 377 * ã¿ã¹ã¯ããã®è¿å¤ã¯ï¼E_DLTã¨ããï¼ 268 * 待ちキューの初期化 269 * 270 * 待ちキューにつながれているタスクをすべて待ち解除する.待ち解除した 271 * タスクからの返値は,E_DLTとする. 378 272 */ 379 273 extern void init_wait_queue(QUEUE *p_wait_queue);
Note:
See TracChangeset
for help on using the changeset viewer.