Ignore:
Timestamp:
Jun 10, 2015, 8:40:31 PM (9 years ago)
Author:
coas-nagasima
Message:

SHIFT_JISのコードにcharsetプロパティを付けた

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/ssp/kernel/task.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2010 by Meika Sugimoto
    1212 *
    13  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    14  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    15  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    17  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    18  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    21 ƒƒ“ƒgi—˜—pŽÒƒ}
    22  *      ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    24  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    26  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    27  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    28 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    29 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    30  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    31  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    32  *        ‚·‚邱‚ƁD
    33  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    34  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    35  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    36  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     15 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     17 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     18 *      コード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     20 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     21 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     22 *      証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     24 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     26 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     28 *        告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     30 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     31 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     32 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3733 *
    38  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    39  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    40  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    41  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    42  *  ‚í‚È‚¢D
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     35 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     36 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     37 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     38 *  わない.
    4339 *
    4440 */
     
    4844
    4945/*
    50  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     46 *  トレースログマクロのデフォルト定義
    5147 */
    5248
     
    6056
    6157
    62 extern const intptr_t   tinib_exinf[];                  /* ƒ^ƒXƒN‚ÌŠg’£î•ñ */
    63 extern const TASK       tinib_task[];                   /* ƒ^ƒXƒN‚Ì‹N“®”Ô’n */
    64 extern const uint_t     tinib_epriority[];              /* ƒ^ƒXƒN‚ÌŽÀsŽž—Dæ“xi“à•”•\Œ»j */
    65 
    66 /* “à•”ŠÖ”‚̃vƒƒgƒ^ƒCƒvéŒ¾ */
     58extern const intptr_t   tinib_exinf[];                  /* タスクの拡張情報 */
     59extern const TASK       tinib_task[];                   /* タスクの起動番地 */
     60extern const uint_t     tinib_epriority[];              /* タスクの実行時優先度(内部表現) */
     61
     62/* 内部関数のプロトタイプ宣言 */
    6763Inline bool_t primap_empty(void);
    6864Inline bool_t primap_test(uint_t pri);
     
    7672
    7773/*
    78  *  ŽÀsó‘Ôƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x
     74 *  実行状態タスクの現在優先度
    7975 */
    8076uint_t runtsk_curpri;
    8177
    8278/*
    83  *  ŽÀsó‘Ôƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x
     79 *  実行状態タスクの起動時優先度
    8480 */
    8581uint_t runtsk_ipri;
    8682
    8783/*
    88  *  ƒŒƒfƒBƒLƒ
    89 [ƒT[ƒ`‚Ì‚½‚߂̃rƒbƒgƒ}ƒbƒv
     84 *  レディキューサーチのためのビットマップ
    9085 */
    9186volatile uint_t ready_primap;
    9287
    9388/*
    94  *  ‹N“®—v‹ƒLƒ
    95 [ƒCƒ“ƒO‚̃rƒbƒgƒ}ƒbƒv
     89 *  起動要求キューイングのビットマップ
    9690 */
    9791uint_t  actque_bitmap;
    9892
    9993/*
    100  *  ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`‹N“®—v‹ƒtƒ‰ƒO
     94 *  タスクディスパッチ起動要求フラグ
    10195 */
    10296bool_t  reqflg;
    10397
    10498/*
    105  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô
     99 *  ディスパッチ禁止状態
    106100 */
    107101bool_t  disdsp;
    108102
    109103/*
    110  *  read_primap‚̏‰Šú’l
     104 *  read_primapの初期値
    111105 */
    112106extern const uint_t init_rdypmap;
     
    117111
    118112/*
    119  *  ƒ^ƒXƒNID‚©‚ç‚Ì‹N“®Žž—Dæ“xŽæ“¾(ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
     113 *  タスクIDからの起動時優先度取得(タスクコンテキスト用)
    120114 */
    121115uint_t
     
    138132
    139133/*
    140  *  ƒ^ƒXƒNID‚©‚ç‚Ì‹N“®Žž—Dæ“xŽæ“¾(”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
     134 *  タスクIDからの起動時優先度取得(非タスクコンテキスト用)
    141135 */
    142136#ifdef TOPPERS_get_ipri
     
    151145
    152146/*
    153  *  ƒrƒbƒgƒ}ƒbƒvƒT[ƒ`ŠÖ”
     147 *  ビットマップサーチ関数
    154148 *
    155  *  bitmap“à‚Ì1‚̃rƒbƒg‚Ì“àCÅ‚à‰ºˆÊi‰Ej‚Ì‚à‚Ì‚ðƒT[ƒ`‚µC‚»‚̃rƒb
    156  *  ƒg”ԍ†‚ð•Ô‚·Dƒrƒbƒg”ԍ†‚́CÅ‰ºˆÊƒrƒbƒg‚ð0‚Æ‚·‚éDbitmap‚É0‚ðŽw’è
    157  *  ‚µ‚Ä‚Í‚È‚ç‚È‚¢D‚±‚̊֐”‚ł́Cbitmap‚ª8ƒrƒbƒg‚Å‚ ‚邱‚Æ‚ð‰¼’è‚µC
    158  *  uint8_tŒ^‚Æ‚µ‚Ä‚¢‚éD
     149 *  bitmap内の1のビットの内,最も下位(右)のものをサーチし,そのビッ
     150 *  ト番号を返す.ビット番号は,最下位ビットを0とする.bitmapに0を指定
     151 *  してはならない.この関数では,bitmapが8ビットであることを仮定し,
     152 *  uint8_t型としている.
    159153 *
    160  *  ƒrƒbƒgƒT[ƒ`–½—ß‚ðŽ‚ÂƒvƒƒZƒbƒT‚ł́CƒrƒbƒgƒT[ƒ`–½—ß‚ðŽg‚¤‚悤‚É
    161  *  ‘‚«’¼‚µ‚½•û‚ªŒø—¦‚ª—Ç‚¢ê‡‚ª‚ ‚éD‚±‚̂悤‚ȏꍇ‚ɂ́Cƒ^[ƒQƒbƒg
    162  *  ˆË‘¶•”‚ŃrƒbƒgƒT[ƒ`–½—ß‚ðŽg‚Á‚½bitmap_search‚ð’è‹`‚µC
    163  *  OMIT_BITMAP_SEARCH‚ðƒ}ƒNƒ’è‹`‚·‚ê‚΂悢D‚Ü‚½CƒrƒbƒgƒT[ƒ`–½—ß‚Ì
    164  *  ƒT[ƒ`•ûŒü‚ª‹t‚È‚Ç‚Ì——R‚Å—Dæ“x‚ƃrƒbƒg‚Ƃ̑Ήž‚ð•ÏX‚µ‚½‚¢ê‡‚É
    165  *  ‚́CPRIMAP_BIT‚ðƒ}ƒNƒ’è‹`‚·‚ê‚΂悢D
     154 *  ビットサーチ命令を持つプロセッサでは,ビットサーチ命令を使うように
     155 *  書き直した方が効率が良い場合がある.このような場合には,ターゲット
     156 *  依存部でビットサーチ命令を使ったbitmap_searchを定義し,
     157 *  OMIT_BITMAP_SEARCHをマクロ定義すればよい.また,ビットサーチ命令の
     158 *  サーチ方向が逆などの理由で優先度とビットとの対応を変更したい場合に
     159 *  は,PRIMAP_BITをマクロ定義すればよい.
    166160 *
    167  *  ‚Ü‚½C•W€ƒ‰ƒCƒuƒ‰ƒŠ‚Éffs‚ª‚ ‚é‚È‚çCŽŸ‚̂悤‚É’è‹`‚µ‚Ä•W€ƒ‰ƒCƒu
    168  *  ƒ‰ƒŠ‚ðŽg‚Á‚½•û‚ªŒø—¦‚ª—Ç‚¢‰Â”\«‚à‚ ‚éD
     161 *  また,標準ライブラリにffsがあるなら,次のように定義して標準ライブ
     162 *  ラリを使った方が効率が良い可能性もある.
    169163 *              #define bitmap_search(bitmap) (ffs(bitmap) - 1)
    170164 */
     
    201195
    202196/*
    203  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚ª‹ó‚©‚̃`ƒFƒbƒN
     197 *  起動時優先度ビットマップが空かのチェック
    204198 */
    205199Inline bool_t
     
    210204
    211205/*
    212  *  Žw’肵‚½‹N“®Žž—Dæ“x‚Ì‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
     206 *  指定した起動時優先度の起動時優先度ビットマップがセットされているかどうかのチェック
    213207 */
    214208Inline bool_t
     
    219213
    220214/*
    221  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̃T[ƒ`
     215 *  起動時優先度ビットマップのサーチ
    222216 */
    223217Inline uint_t
     
    228222
    229223/*
    230  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̃Zƒbƒg
     224 *  起動時優先度ビットマップのセット
    231225 */
    232226Inline void
     
    237231
    238232/*
    239  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̃NƒŠƒA
     233 *  起動時優先度ビットマップのクリア
    240234 */
    241235Inline void
     
    246240
    247241/*
    248  *  Å‚—Dæ‡ˆÊƒ^ƒXƒN‚̃T[ƒ`
     242 *  最高優先順位タスクのサーチ
    249243 */
    250244
     
    261255#ifdef TOPPERS_tskdmt
    262256/*
    263  *  Žw’肵‚½‹N“®Žž—Dæ“x‚̃^ƒXƒN‚ªŽÀs‚Å‚«‚éó‘Ô‚©‚Ç‚¤‚©‚̃eƒXƒg
     257 *  指定した起動時優先度のタスクが実行できる状態かどうかのテスト
    264258 *
    265259 */
     
    273267
    274268/*
    275  *  ƒ^ƒXƒNŠÇ—ƒ‚ƒWƒ
    276 [ƒ‹‚̏‰Šú‰»
     269 *  タスク管理モジュールの初期化
    277270 */
    278271
     
    283276initialize_task(void)
    284277{
    285         /* ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̏‰Šú‰» */
     278        /* 起動時優先度ビットマップの初期化 */
    286279        ready_primap = init_rdypmap;
    287280       
    288         /* ƒ^ƒXƒN—Dæ“x‚̏‰Šú‰» */
     281        /* タスク優先度の初期化 */
    289282        runtsk_curpri = TSKPRI_NULL;
    290283        runtsk_ipri = TSKPRI_NULL;
    291284       
    292         /* ‹N“®—v‹ƒLƒ
    293 [ƒCƒ“ƒO‚̏‰Šú‰» */
     285        /* 起動要求キューイングの初期化 */
    294286        actque_bitmap = 0U;
    295287       
    296         /* Š„ž‚Ý‹ÖŽ~ƒtƒ‰ƒO‚̏‰Šú‰» */
     288        /* 割込み禁止フラグの初期化 */
    297289        disdsp = false;
    298290}
     
    301293
    302294/*
    303  *  ƒ^ƒXƒN‚Ì‹N“®
     295 *  タスクの起動
    304296 */
    305297
     
    314306       
    315307        /*
    316          *  ŽÀsó‘Ôƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚ƈø”‚ÅŽw’肳‚ꂽ
    317          *  ‹N“®‘Ώۃ^ƒXƒN‚̏‰Šú—Dæ“x‚ð”äŠr‚µCŽÀsó‘Ôƒ^ƒXƒN‚ð
    318          *  •ÏX‚·‚é‚©”»’è‚·‚éD
     308         *  実行状態タスクの現在優先度と引数で指定された
     309         *  起動対象タスクの初期優先度を比較し,実行状態タスクを
     310         *  変更するか判定する.
    319311         *
    320          *  ‚½‚¾‚µŽÀsó‘Ôƒ^ƒXƒN‚ð•ÏX‚·‚éê‡‚̓fƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚àŽQÆ‚·‚éD
     312         *  ただし実行状態タスクを変更する場合はディスパッチ禁止状態も参照する.
    321313         */
    322314        if(ipri < runtsk_curpri) {
     
    334326
    335327/*
    336  *  ƒ^ƒXƒN‚ÌŽÀs
     328 *  タスクの実行
    337329 */
    338330
     
    342334run_task(uint_t ipri)
    343335{
    344         uint_t next_pri;                /* ŽŸ‚ÉŽÀsŠJŽn‚·‚éƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x */
    345         uint_t saved_ipri;              /* ŒÄ‚яo‚µŒ³ƒ^ƒXƒN‚̏‰Šú—Dæ“x */
    346         uint_t saved_curpri;    /* ŒÄ‚яo‚µŒ³ƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x */
     336        uint_t next_pri;                /* 次に実行開始するタスクの起動時優先度 */
     337        uint_t saved_ipri;              /* 呼び出し元タスクの初期優先度 */
     338        uint_t saved_curpri;    /* 呼び出し元タスクの現在優先度 */
    347339        bool_t cont;
    348340       
    349         /* Å‚—Dæ‡ˆÊƒ^ƒXƒN‚ðŽÀs‚·‚é‘O‚ɁCŒ»ÝŽÀs’†‚̃^ƒXƒN‚ÌŒ»Ý—Dæ“x‚Ə‰Šú—Dæ“x‚ð•Û‘¶‚·‚é */
     341        /* 最高優先順位タスクを実行する前に,現在実行中のタスクの現在優先度と初期優先度を保存する */
    350342        next_pri = ipri;
    351343        saved_ipri = runtsk_ipri;
     
    353345       
    354346        do {
    355                 /* ŽÀs‚·‚éƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚ðŽÀsŽž—Dæ“x‚ɐݒ肷‚é */
     347                /* 実行するタスクの現在優先度を実行時優先度に設定する */
    356348                runtsk_curpri = tinib_epriority[next_pri];
    357349                runtsk_ipri = next_pri;
    358350#ifndef _MSC_VER
    359                 /* CPUƒƒbƒN‰ðœ */
     351                /* CPUロック解除 */
    360352                t_unlock_cpu();
    361353               
    362                 /* ƒ^ƒXƒNŽÀsŠJŽn */
     354                /* タスク実行開始 */
    363355                (*((TASK)(tinib_task[next_pri])))(tinib_exinf[next_pri]);
    364356#else
     
    367359                if (t_sense_lock()) {
    368360                        /*
    369                          *  CPUƒƒbƒNó‘Ô‚Åext_tsk‚ªŒÄ‚΂ꂽê‡‚́CCPUƒƒbƒN‚ð‰ðœ‚µ
    370                          *  ‚Ä‚©‚çƒ^ƒXƒN‚ðI—¹‚·‚éDŽÀ‘•ã‚́CƒT[ƒrƒXƒR[ƒ‹“à‚Å‚ÌCPU
    371                          *  ƒƒbƒN‚ðÈ—ª‚·‚ê‚΂悢‚¾‚¯D
     361                         *  CPUロック状態でext_tskが呼ばれた場合は,CPUロックを解除し
     362                         *  てからタスクを終了する.実装上は,サービスコール内でのCPU
     363                         *  ロックを省略すればよいだけ.
    372364                         */
    373365                }
    374366                else {
    375367                        /*
    376                          *  ‚±‚Ìt_lock_cpu‚ð‚±‚Ì‰º‚Ìdisdsp‚̐ݒè‚̂悤‚É‚µ‚È‚¢‚̂́C
    377                          *  CPUƒƒbƒN’†‚ɍēxt_lock_cpu‚ðŒÄ‚΂Ȃ¢‚½‚ß‚Å‚ ‚éD
     368                         *  このt_lock_cpuをこの下のdisdspの設定のようにしないのは,
     369                         *  CPUロック中に再度t_lock_cpuを呼ばないためである.
    378370                         */
    379371                        t_lock_cpu();
    380372                }
    381373               
    382                 /* Š„ž‚Ý—Dæ“xƒ}ƒXƒN‚Í‘S‰ðœó‘Ô‚Ì‚Í‚¸‚Ȃ̂ŁC‰½‚à‚µ‚È‚¢ */
     374                /* 割込み優先度マスクは全解除状態のはずなので,何もしない */
    383375               
    384376                /*
    385                  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Åext_tsk‚ªŒÄ‚΂ꂽê‡‚́CƒfƒBƒXƒpƒb
    386                  *  ƒ`‹–‰Âó‘Ô‚É‚µ‚Ä‚©‚çƒ^ƒXƒN‚ðI—¹‚·‚éD
     377                 *  ディスパッチ禁止状態でext_tskが呼ばれた場合は,ディスパッ
     378                 *  チ許可状態にしてからタスクを終了する.
    387379                 *
    388                  *      –{—ˆ‚͈ȉº‚̂悤‚É‹Lq‚·‚ׂ«‚Å‚ ‚邪C‚¢‚¸‚ê‚É‚¹‚ædisdsp‚ð
    389                  *      false‚É‚·‚ê‚΂¢‚¢‚½‚߁C’P‚Éfalse‚ɐݒ肷‚éD
     380                 *      本来は以下のように記述すべきであるが,いずれにせよdisdspを
     381                 *      falseにすればいいため,単にfalseに設定する.
    390382                 *
    391383                 *              if (disdsp) {
     
    395387                disdsp = false;
    396388               
    397                 /* ƒrƒbƒgƒ}ƒbƒvƒNƒŠƒAD */
     389                /* ビットマップクリア. */
    398390                primap_clear(next_pri);
    399391               
    400392                cont = false;
    401393               
    402                 /* ƒ^ƒXƒN‹N“®—v‹ƒLƒ
    403 [ƒCƒ“ƒO‚̃`ƒFƒbƒN */
     394                /* タスク起動要求キューイングのチェック */
    404395                if (actque_test(next_pri)) {
    405396                        actque_clear(next_pri);
     
    407398                }
    408399               
    409                 /* ‚¢‚¸‚ê‚©‚̃^ƒXƒN‚ªŽÀs‰Â”\ó‘Ô‚É‚È‚Á‚Ä‚¢‚é‚© */
     400                /* いずれかのタスクが実行可能状態になっているか */
    410401                if(!primap_empty())
    411402                {
    412                         /* –ß‚èæƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚æ‚荂‚¢‹N“®Žž—Dæ“x‚ð‚à‚ƒ^ƒXƒN‚ª‹N“®‚³‚ꂽ‚© */
     403                        /* 戻り先タスクの現在優先度より高い起動時優先度をもつタスクが起動されたか */
    413404                        next_pri = search_schedtsk();
    414405                        if(saved_curpri > next_pri)
     
    426417
    427418/*
    428  *  ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`ƒƒ
     419 *  タスクディスパッチャ
    429420 */
    430421
     
    436427        do {
    437428                if(!primap_empty()) {
    438                         /* ƒ^ƒXƒN‚ÌŠJŽn */
     429                        /* タスクの開始 */
    439430                        run_task(search_schedtsk());
    440431                }
Note: See TracChangeset for help on using the changeset viewer.