Changeset 315 for rubycfg_asp/trunk/asp_dcre/kernel/task_manage.c
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/kernel/task_manage.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 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 責ãããã¨ï¼ 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 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * ã¿ã¹ã¯ç®¡çæ©è½44 * タスク管理機能 60 45 */ 61 46 … … 66 51 67 52 /* 68 * ãã¬ã¼ã¹ãã°ãã¯ãã®ããã©ã«ãå®ç¾©53 * トレースログマクロのデフォルト定義 69 54 */ 70 55 #ifndef LOG_ACRE_TSK_ENTER … … 149 134 150 135 /* 151 * ã¿ã¹ã¯ã®çæ136 * タスクの生成 152 137 */ 153 138 #ifdef TOPPERS_acre_tsk 154 139 155 140 #ifndef TARGET_MIN_STKSZ 156 #define TARGET_MIN_STKSZ 1U /* æªå®ç¾©ã®å ´åã¯0ã§ãªããã¨ããã§ãã¯*/141 #define TARGET_MIN_STKSZ 1U /* 未定義の場合は0でないことをチェック */ 157 142 #endif /* TARGET_MIN_STKSZ */ 158 143 … … 231 216 232 217 /* 233 * ã¿ã¹ã¯ã®åé¤218 * タスクの削除 234 219 */ 235 220 #ifdef TOPPERS_del_tsk … … 277 262 278 263 /* 279 * ã¿ã¹ã¯ã®èµ·å264 * タスクの起動 280 265 */ 281 266 #ifdef TOPPERS_act_tsk … … 319 304 320 305 /* 321 * ã¿ã¹ã¯ã®èµ·åï¼éã¿ã¹ã¯ã³ã³ããã¹ãç¨ï¼306 * タスクの起動(非タスクコンテキスト用) 322 307 */ 323 308 #ifdef TOPPERS_iact_tsk … … 361 346 362 347 /* 363 * ã¿ã¹ã¯èµ·åè¦æ±ã®ãã£ã³ã»ã«348 * タスク起動要求のキャンセル 364 349 */ 365 350 #ifdef TOPPERS_can_act … … 394 379 395 380 /* 396 * èªã¿ã¹ã¯ã®çµäº381 * 自タスクの終了 397 382 */ 398 383 #ifdef TOPPERS_ext_tsk … … 408 393 if (t_sense_lock()) { 409 394 /* 410 * CPUããã¯ç¶æ 411 ã§ext_tskãå¼ã°ããå ´åã¯ï¼CPUããã¯ã解é¤ã 412 * ã¦ããã¿ã¹ã¯ãçµäºããï¼å®è£ 413 ä¸ã¯ï¼ãµã¼ãã¹ã³ã¼ã«å 414 ã§ã®CPU 415 * ããã¯ãçç¥ããã°ããã ãï¼ 395 * CPUロック状態でext_tskが呼ばれた場合は,CPUロックを解除し 396 * てからタスクを終了する.実装上は,サービスコール内でのCPU 397 * ロックを省略すればよいだけ. 416 398 */ 417 399 } … … 421 403 if (disdsp) { 422 404 /* 423 * ãã£ã¹ãããç¦æ¢ç¶æ 424 ã§ext_tskãå¼ã°ããå ´åã¯ï¼ãã£ã¹ãã 425 * ã許å¯ç¶æ 426 ã«ãã¦ããã¿ã¹ã¯ãçµäºããï¼ 405 * ディスパッチ禁止状態でext_tskが呼ばれた場合は,ディスパッ 406 * チ許可状態にしてからタスクを終了する. 427 407 */ 428 408 disdsp = false; … … 430 410 if (!ipmflg) { 431 411 /* 432 * å²è¾¼ã¿åªå 433 度ãã¹ã¯ï¼IPMï¼ãTIPM_ENAALL以å¤ã®ç¶æ 434 ã§ext_tsk 435 * ãå¼ã°ããå ´åã¯ï¼IPMãTIPM_ENAALLã«ãã¦ããã¿ã¹ã¯ãçµäºã 436 * ãï¼ 412 * 割込み優先度マスク(IPM)がTIPM_ENAALL以外の状態でext_tsk 413 * が呼ばれた場合は,IPMをTIPM_ENAALLにしてからタスクを終了す 414 * る. 437 415 */ 438 416 t_set_ipm(TIPM_ENAALL); … … 458 436 459 437 /* 460 * ã¿ã¹ã¯ã®å¼·å¶çµäº438 * タスクの強制終了 461 439 */ 462 440 #ifdef TOPPERS_ter_tsk … … 484 462 if (TSTAT_RUNNABLE(p_tcb->tstat)) { 485 463 /* 486 * p_tcbã¯èªã¿ã¹ã¯ã§ãªãããï¼ï¼ã·ã³ã°ã«ããã»ããµã§ã¯ï¼å® 487 * è¡ç¶æ 488 ã§ãªãï¼make_non_runnable(p_tcb)ã§ã¿ã¹ã¯ãã£ã¹ãã 489 * ããå¿ 490 è¦ã«ãªããã¨ã¯ãªãï¼ 464 * p_tcbは自タスクでないため,(シングルプロセッサでは)実 465 * 行状態でなく,make_non_runnable(p_tcb)でタスクディスパッ 466 * チが必要になることはない. 491 467 */ 492 468 (void) make_non_runnable(p_tcb); … … 515 491 516 492 /* 517 * ã¿ã¹ã¯ã®ãã¼ã¹åªå 518 度ã®å¤æ´ 493 * タスクのベース優先度の変更 519 494 */ 520 495 #ifdef TOPPERS_chg_pri … … 558 533 559 534 /* 560 * ã¿ã¹ã¯åªå 561 度ã®åç 562 § 535 * タスク優先度の参照 563 536 */ 564 537 #ifdef TOPPERS_get_pri … … 596 569 597 570 /* 598 * èªã¿ã¹ã¯ã®æ¡å¼µæ 599 å ±ã®åç 600 § 571 * 自タスクの拡張情報の参照 601 572 */ 602 573 #ifdef TOPPERS_get_inf -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.