Changeset 321 for EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c
- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 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 * ã·ã¹ãã ç¶æ 60 管çæ©è½ 44 * システム状態管理機能 61 45 */ 62 46 … … 66 50 67 51 /* 68 * ãã¬ã¼ã¹ãã°ãã¯ãã®ããã©ã«ãå®ç¾©52 * トレースログマクロのデフォルト定義 69 53 */ 70 54 #ifndef LOG_ROT_RDQ_ENTER … … 173 157 174 158 /* 175 * ã¿ã¹ã¯ã®åªå 176 é ä½ã®å転[NGKI3548ï¼½ 159 * タスクの優先順位の回転[NGKI3548] 177 160 */ 178 161 #ifdef TOPPERS_rot_rdq … … 185 168 186 169 LOG_ROT_RDQ_ENTER(tskpri); 187 CHECK_UNL(); /* ï¼»NGKI2684ï¼½*/170 CHECK_UNL(); /*[NGKI2684]*/ 188 171 if (tskpri == TPRI_SELF && !sense_context()) { 189 pri = p_runtsk->bpriority; /* ï¼»NGKI2689ï¼½*/172 pri = p_runtsk->bpriority; /*[NGKI2689]*/ 190 173 } 191 174 else { 192 CHECK_PAR(VALID_TPRI(tskpri)); /* ï¼»NGKI2685ï¼½*/175 CHECK_PAR(VALID_TPRI(tskpri)); /*[NGKI2685]*/ 193 176 pri = INT_PRIORITY(tskpri); 194 177 } … … 215 198 216 199 /* 217 * å®è¡ç¶æ 218 ã®ã¿ã¹ã¯IDã®åç 219 §ï¼»NGKI3550ï¼½ 200 * 実行状態のタスクIDの参照[NGKI3550] 220 201 */ 221 202 #ifdef TOPPERS_get_tid … … 227 208 228 209 LOG_GET_TID_ENTER(p_tskid); 229 CHECK_UNL(); /* ï¼»NGKI2707ï¼½*/210 CHECK_UNL(); /*[NGKI2707]*/ 230 211 231 212 lock_cpu(); … … 242 223 243 224 /* 244 * å®è¡ã§ããã¿ã¹ã¯ã®æ°ã®åç 245 §ï¼»NGKI3623ï¼½ 225 * 実行できるタスクの数の参照[NGKI3623] 246 226 */ 247 227 #ifdef TOPPERS_get_lod … … 255 235 256 236 LOG_GET_LOD_ENTER(p_tskid, p_load); 257 CHECK_TSKCTX_UNL(); /* ï¼»NGKI3624][NGKI3625ï¼½*/237 CHECK_TSKCTX_UNL(); /*[NGKI3624][NGKI3625]*/ 258 238 if (tskpri == TPRI_SELF) { 259 pri = p_runtsk->bpriority; /* ï¼»NGKI3631ï¼½*/239 pri = p_runtsk->bpriority; /*[NGKI3631]*/ 260 240 } 261 241 else { 262 CHECK_PAR(VALID_TPRI(tskpri)); /* ï¼»NGKI3626ï¼½*/242 CHECK_PAR(VALID_TPRI(tskpri)); /*[NGKI3626]*/ 263 243 pri = INT_PRIORITY(tskpri); 264 244 } … … 283 263 284 264 /* 285 * æå®ããåªå 286 é ä½ã®ã¿ã¹ã¯IDã®åç 287 §ï¼»NGKI3641ï¼½ 265 * 指定した優先順位のタスクIDの参照[NGKI3641] 288 266 */ 289 267 #ifdef TOPPERS_get_nth … … 298 276 299 277 LOG_GET_NTH_ENTER(p_tskid, nth, p_tskid); 300 CHECK_TSKCTX_UNL(); /* ï¼»NGKI3642][NGKI3643ï¼½*/278 CHECK_TSKCTX_UNL(); /*[NGKI3642][NGKI3643]*/ 301 279 if (tskpri == TPRI_SELF) { 302 pri = p_runtsk->bpriority; /* ï¼»NGKI3650ï¼½*/280 pri = p_runtsk->bpriority; /*[NGKI3650]*/ 303 281 } 304 282 else { 305 CHECK_PAR(VALID_TPRI(tskpri)); /* ï¼»NGKI3644ï¼½*/283 CHECK_PAR(VALID_TPRI(tskpri)); /*[NGKI3644]*/ 306 284 pri = INT_PRIORITY(tskpri); 307 285 } … … 330 308 331 309 /* 332 * CPUããã¯ç¶æ 333 ã¸ã®é·ç§»ï¼»NGKI3538ï¼½ 310 * CPUロック状態への遷移[NGKI3538] 334 311 */ 335 312 #ifdef TOPPERS_loc_cpu … … 342 319 LOG_LOC_CPU_ENTER(); 343 320 344 if (!sense_lock()) { /* ï¼»NGKI2731ï¼½*/345 lock_cpu(); /* ï¼»NGKI2730ï¼½*/321 if (!sense_lock()) { /*[NGKI2731]*/ 322 lock_cpu(); /*[NGKI2730]*/ 346 323 } 347 324 ercd = E_OK; … … 354 331 355 332 /* 356 * CPUããã¯ç¶æ 357 ã®è§£é¤ï¼»NGKI3539ï¼½ 333 * CPUロック状態の解除[NGKI3539] 358 334 * 359 * CPUããã¯ä¸ã¯ï¼ãã£ã¹ããããå¿ 360 è¦ã¨ãªããµã¼ãã¹ã³ã¼ã«ãå¼ã³åºãã 361 * ã¨ã¯ã§ããªãããï¼CPUããã¯ç¶æ 362 ã®è§£é¤æã«ãã£ã¹ãããã£ãèµ·åãã 363 * å¿ 364 è¦ã¯ãªãï¼ 335 * CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ 336 * とはできないため,CPUロック状態の解除時にディスパッチャを起動する 337 * 必要はない. 365 338 */ 366 339 #ifdef TOPPERS_unl_cpu … … 373 346 LOG_UNL_CPU_ENTER(); 374 347 375 if (sense_lock()) { /* ï¼»NGKI2738ï¼½*/376 unlock_cpu(); /* ï¼»NGKI2737ï¼½*/348 if (sense_lock()) { /*[NGKI2738]*/ 349 unlock_cpu(); /*[NGKI2737]*/ 377 350 } 378 351 ercd = E_OK; … … 385 358 386 359 /* 387 * ãã£ã¹ãããã®ç¦æ¢ï¼»NGKI2740ï¼½360 * ディスパッチの禁止[NGKI2740] 388 361 */ 389 362 #ifdef TOPPERS_dis_dsp … … 395 368 396 369 LOG_DIS_DSP_ENTER(); 397 CHECK_TSKCTX_UNL(); /* ï¼»NGKI2741][NGKI2742ï¼½*/370 CHECK_TSKCTX_UNL(); /*[NGKI2741][NGKI2742]*/ 398 371 399 372 lock_cpu(); … … 411 384 412 385 /* 413 * ãã£ã¹ãããã®è¨±å¯ï¼»NGKI2746ï¼½386 * ディスパッチの許可[NGKI2746] 414 387 */ 415 388 #ifdef TOPPERS_ena_dsp … … 421 394 422 395 LOG_ENA_DSP_ENTER(); 423 CHECK_TSKCTX_UNL(); /* ï¼»NGKI2747][NGKI2748ï¼½*/396 CHECK_TSKCTX_UNL(); /*[NGKI2747][NGKI2748]*/ 424 397 425 398 lock_cpu(); … … 453 426 454 427 /* 455 * ã³ã³ããã¹ãã®åç 456 §ï¼»NGKI2752ï¼½ 428 * コンテキストの参照[NGKI2752] 457 429 */ 458 430 #ifdef TOPPERS_sns_ctx … … 472 444 473 445 /* 474 * CPUããã¯ç¶æ 475 ã®åç 476 §ï¼»NGKI2754ï¼½ 446 * CPUロック状態の参照[NGKI2754] 477 447 */ 478 448 #ifdef TOPPERS_sns_loc … … 492 462 493 463 /* 494 * ãã£ã¹ãããç¦æ¢ç¶æ 495 ã®åç 496 §ï¼»NGKI2756ï¼½ 464 * ディスパッチ禁止状態の参照[NGKI2756] 497 465 */ 498 466 #ifdef TOPPERS_sns_dsp … … 512 480 513 481 /* 514 * ãã£ã¹ãããä¿çç¶æ 515 ã®åç 516 §ï¼»NGKI2758ï¼½ 482 * ディスパッチ保留状態の参照[NGKI2758] 517 483 */ 518 484 #ifdef TOPPERS_sns_dpn … … 532 498 533 499 /* 534 * ã«ã¼ãã«éåä½ç¶æ 535 ã®åç 536 §ï¼»NGKI2760ï¼½ 500 * カーネル非動作状態の参照[NGKI2760] 537 501 */ 538 502 #ifdef TOPPERS_sns_ker
Note:
See TracChangeset
for help on using the changeset viewer.