Changeset 315 for rubycfg_asp/trunk/asp_dcre/test/bit_kernel.c
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/test/bit_kernel.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * 9 * ä¸è¨èä½æ¨©è 10 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 11 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 12 * å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 14 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 15 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 16 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 17 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 18 * ç¨ã§ããå½¢ã§åé 19 å¸ããå ´åã«ã¯ï¼åé 20 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 21 * è 22 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 23 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 24 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 25 * ç¨ã§ããªãå½¢ã§åé 26 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 27 * ã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (b) åé 33 å¸ã®å½¢æ 34 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 35 * å ±åãããã¨ï¼ 36 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 37 * 害ãããï¼ä¸è¨èä½æ¨©è 38 ããã³TOPPERSããã¸ã§ã¯ããå 39 責ãããã¨ï¼ 40 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 41 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 42 ããã³TOPPERSããã¸ã§ã¯ãã 43 * å 44 責ãããã¨ï¼ 9 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * ã«ã¼ãã«ã®æ´åæ§æ¤æ»42 * カーネルの整合性検査 58 43 */ 59 44 … … 70 55 71 56 /* 72 * ã¨ã©ã¼ã³ã¼ãã®å®ç¾©57 * エラーコードの定義 73 58 */ 74 59 #define E_SYS_LINENO ERCD(E_SYS, -(__LINE__)) 75 60 76 61 /* 77 * 管çãããã¯ã®ã¢ãã¬ã¹ã®æ£å½æ§ã®ãã§ãã¯62 * 管理ブロックのアドレスの正当性のチェック 78 63 */ 79 64 #define VALID_TCB(p_tcb) \ … … 106 91 107 92 /* 108 * ãã¥ã¼ã®ãã§ãã¯ã®ããã®é¢æ°93 * キューのチェックのための関数 109 94 * 110 * p_queue ã«p_entryãå«ã¾ãã¦ãããã調ã¹ãï¼å«ã¾ãã¦ããã°trueï¼å«ã¾111 * ãã¦ããªãå ´åã«ã¯falseãè¿ãï¼ããã«ãªã³ã¯ã®ä¸æ´åã®å ´åã«ãï¼112 * false ãè¿ãï¼95 * p_queueにp_entryが含まれているかを調べる.含まれていればtrue,含ま 96 * れていない場合にはfalseを返す.ダブルリンクの不整合の場合にも, 97 * falseを返す. 113 98 */ 114 99 static bool_t … … 119 104 p_current = p_queue->p_next; 120 105 if (p_current->p_prev != p_queue) { 121 return(false); /* ããã«ãªã³ã¯ã®ä¸æ´å*/106 return(false); /* ダブルリンクの不整合 */ 122 107 } 123 108 while (p_current != p_queue) { 124 109 if (p_current == p_entry) { 125 return(true); /* p_entry ãå«ã¾ãã¦ãã*/110 return(true); /* p_entryが含まれていた */ 126 111 } 127 112 128 113 /* 129 * ãã¥ã¼ã®æ¬¡ã®è¦ç´ ã«é²ã114 * キューの次の要素に進む 130 115 */ 131 116 p_next = p_current->p_next; 132 117 if (p_next->p_prev != p_current) { 133 return(false); /* ããã«ãªã³ã¯ã®ä¸æ´å*/118 return(false); /* ダブルリンクの不整合 */ 134 119 } 135 120 p_current = p_next; … … 139 124 140 125 /* 141 * ã¹ã¿ãã¯ä¸ãæãã¦ãããã®æ¤æ»126 * スタック上を指しているかの検査 142 127 */ 143 128 static bool_t … … 152 137 153 138 /* 154 * ã¿ã¹ã¯æ¯ã®æ´åæ§æ¤æ»139 * タスク毎の整合性検査 155 140 */ 156 141 static ER … … 178 163 179 164 /* 180 * åæåãããã¯ã¸ã®ãã¤ã³ã¿ã®æ¤æ»165 * 初期化ブロックへのポインタの検査 181 166 */ 182 167 if (p_tinib != &(tinib_table[INDEX_TSK(tskid)])) { … … 185 170 186 171 /* 187 * tstat ã®æ¤æ»172 * tstatの検査 188 173 */ 189 174 switch (tstat & (TS_RUNNABLE | TS_WAITING | TS_SUSPENDED)) { … … 218 203 219 204 /* 220 * actque ã®æ¤æ»205 * actqueの検査 221 206 */ 222 207 if (TSTAT_DORMANT(tstat) && p_tcb->actque) { … … 225 210 226 211 /* 227 * ã¿ã¹ã¯åªå 228 度ã®æ¤æ» 212 * タスク優先度の検査 229 213 */ 230 214 if (pri >= TNUM_TPRI) { … … 233 217 234 218 /* 235 * texptn ã®æ¤æ»219 * texptnの検査 236 220 */ 237 221 if (p_tcb->p_tinib->texrtn == NULL && p_tcb->texptn != 0U) { … … 240 224 241 225 /* 242 * ä¼æ¢ç¶æ 243 ã«ããããã§ã㯠226 * 休止状態におけるチェック 244 227 */ 245 228 if (TSTAT_DORMANT(tstat)) { … … 253 236 254 237 /* 255 * å®è¡ã§ããç¶æ 256 ã«ããããã§ã㯠238 * 実行できる状態におけるチェック 257 239 */ 258 240 if (TSTAT_RUNNABLE(tstat)) { … … 263 245 264 246 /* 265 * å¾ 266 ã¡ç¶æ 267 ã«ããããã§ã㯠247 * 待ち状態におけるチェック 268 248 */ 269 249 if (TSTAT_WAITING(tstat)) { … … 277 257 } 278 258 /* 279 * (*p_tmevtb) ã®æ¤æ»ï¼æªå®æï¼259 * (*p_tmevtb)の検査(未完成) 280 260 */ 281 261 } … … 377 357 378 358 /* 379 * tskctxb ã®æ¤æ»359 * tskctxbの検査 380 360 */ 381 361 if (!TSTAT_DORMANT(tstat) && p_tcb != p_runtsk) { 382 362 /* 383 * ã¿ã¼ã²ããä¾åã®æ¤æ»363 * ターゲット依存の検査 384 364 */ 385 365 #if 0 … … 393 373 394 374 /* 395 * ã»ããã©æ¯ã®æ´åæ§æ¤æ»375 * セマフォ毎の整合性検査 396 376 */ 397 377 #define INDEX_SEM(semid) ((uint_t)((semid) - TMIN_SEMID)) … … 415 395 416 396 /* 417 * åæåãããã¯ã¸ã®ãã¤ã³ã¿ã®æ¤æ»397 * 初期化ブロックへのポインタの検査 418 398 */ 419 399 if (p_seminib != &(seminib_table[INDEX_SEM(semid)])) { … … 422 402 423 403 /* 424 * semcnt ã®æ¤æ»404 * semcntの検査 425 405 */ 426 406 if (semcnt > p_seminib->maxsem) { … … 429 409 430 410 /* 431 * wait_queue ã®æ¤æ»411 * wait_queueの検査 432 412 */ 433 413 if (semcnt == 0) { … … 456 436 457 437 /* 458 * æ´åæ§æ¤æ»ã«ã¼ãã³æ¬ä½438 * 整合性検査ルーチン本体 459 439 */ 460 440 ER … … 466 446 467 447 /* 468 * ã¿ã¹ã¯æ¯ã®æ¤æ»448 * タスク毎の検査 469 449 */ 470 450 for (tskid = TMIN_TSKID; tskid <= tmax_tskid; tskid++) { … … 476 456 477 457 /* 478 * ã»ããã©æ¯ã®æ¤æ»458 * セマフォ毎の検査 479 459 */ 480 460 for (semid = TMIN_SEMID; semid <= tmax_semid; semid++) { -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.