Ignore:
Timestamp:
Mar 8, 2016, 8:37:45 PM (7 years ago)
Author:
coas-nagasima
Message:

MIMEにSJISを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • UsbWattMeter/trunk/asp_dcre/kernel/time_event.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=SHIFT_JIS
    r164 r167  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    12  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    13  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    14  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    15  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    16  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    17  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    18  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    19 ƒƒ“ƒgi—˜—p
    20  *      ŽÒƒ}ƒjƒ
    21 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    22  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    23  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    24  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    25  *      ‚ƁD
    26  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    27 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    28 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    29  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    30  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    31  *        •ñ‚·‚邱‚ƁD
    32  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    33  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    34  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    35  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    36  *      –Ɛӂ·‚邱‚ƁD
    37  *
    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
    41  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    42  *  ‚̐ӔC‚𕉂í‚È‚¢D
     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 *  の責任を負わない.
    4339 *
    4440 *  $Id$
     
    4642
    4743/*
    48  *              ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—ƒ‚ƒWƒ
    49 [ƒ‹
     44 *              タイムイベント管理モジュール
    5045 */
    5146
     
    5449
    5550/*
    56  *  ƒCƒxƒ“ƒg”­¶Žž‚̃f[ƒ^Œ^‚Ì’è‹`
    57  *
    58  *  EVTTIM‚́CRELTIM‚Æ‚µ‚ÄŽw’è‚Å‚«‚é”͈͂æ‚è‚àL‚¢”͈͂ð•\Œ»‚Å‚«‚é•K—v
    59  *  ‚ª‚ ‚éDƒÊITRON4.0Žd—l‚̃Xƒ^ƒ“ƒ_[ƒhƒvƒƒtƒ@ƒCƒ‹‚ł́CRELTIM‚ª16ƒrƒb
    60  *  ƒgˆÈã‚Å‚È‚¯‚ê‚΂Ȃç‚È‚¢‚½‚߁CEVTTIM‚Í17ƒrƒbƒgˆÈã‚Å‚ ‚邱‚Æ‚ª•K—v
    61  *  ‚Å‚ ‚éD‚»‚Ì‚½‚߁C16ƒrƒbƒg‚É‚È‚éê‡‚ª‚ ‚éuint_t‚Å‚Í‚È‚­Culong_t‚É
    62  *  ’è‹`‚µ‚Ä‚¢‚éD
     51 *  イベント発生時刻のデータ型の定義
     52 *
     53 *  EVTTIMは,RELTIMとして指定できる範囲よりも広い範囲を表現できる必要
     54 *  がある.μITRON4.0仕様のスタンダードプロファイルでは,RELTIMが16ビッ
     55 *  ト以上でなければならないため,EVTTIMは17ビット以上であることが必要
     56 *  である.そのため,16ビットになる場合があるuint_tではなく,ulong_tに
     57 *  定義している.
    6358 */
    6459typedef ulong_t EVTTIM;
    6560
    6661/*
    67  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚̃f[ƒ^Œ^‚Ì’è‹`
    68  */
    69 typedef void    (*CBACK)(void *);       /* ƒR[ƒ‹ƒoƒbƒNŠÖ”‚ÌŒ^ */
     62 *  タイムイベントブロックのデータ型の定義
     63 */
     64typedef void    (*CBACK)(void *);       /* コールバック関数の型 */
    7065
    7166typedef struct time_event_block {
    72         uint_t  index;                  /* ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv’†‚ł̈ʒu */
    73         CBACK   callback;               /* ƒR[ƒ‹ƒoƒbƒNŠÖ” */
    74         void    *arg;                   /* ƒR[ƒ‹ƒoƒbƒNŠÖ”‚Ö“n‚·ˆø” */
     67        uint_t  index;                  /* タイムイベントヒープ中での位置 */
     68        CBACK   callback;               /* コールバック関数 */
     69        void    *arg;                   /* コールバック関数へ渡す引数 */
    7570} TMEVTB;
    7671
    7772/*
    78  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv’†‚̃m[ƒh‚̃f[ƒ^Œ^‚Ì’è‹`
     73 *  タイムイベントヒープ中のノードのデータ型の定義
    7974 */
    8075typedef struct time_event_node {
    81         EVTTIM  time;                   /* ƒCƒxƒ“ƒg”­¶Žž */
    82         TMEVTB  *p_tmevtb;              /* ‘Ήž‚·‚éƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN */
     76        EVTTIM  time;                   /* イベント発生時刻 */
     77        TMEVTB  *p_tmevtb;              /* 対応するタイムイベントブロック */
    8378} TMEVTN;
    8479
    8580/*
    86  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒvikernel_cfg.cj
     81 *  タイムイベントヒープ(kernel_cfg.c)
    8782 */
    8883extern TMEVTN   tmevt_heap[];
    8984
    9085/*
    91  *  Œ»Ý‚̃VƒXƒeƒ€Žži’PˆÊ: 1ƒ~ƒŠ•bj
    92  *
    93  *  ƒVƒXƒeƒ€‹N“®Žž‚É0‚ɏ‰Šú‰»‚³‚êCˆÈ~Cƒ^ƒCƒ€ƒeƒBƒbƒN‚ª‹Ÿ‹‹‚³‚ê‚é“x‚É
    94  *  ’P’²‚É‘‰Á‚·‚éD
     86 *  現在のシステム時刻(単位: 1ミリ秒)
     87 *
     88 *  システム起動時に0に初期化され,以降,タイムティックが供給される度に
     89 *  単調に増加する.
    9590 */
    9691extern EVTTIM   current_time;
    9792
    9893/*
    99  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv’†‚Å—LŒø‚ȍŏ¬‚̃VƒXƒeƒ€Žži’PˆÊ: 1ƒ~ƒŠ•bj
     94 *  タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒)
    10095 */
    10196extern EVTTIM   min_time;
    10297
    10398/*
    104  *  ŽŸ‚̃^ƒCƒ€ƒeƒBƒbƒN‚̃VƒXƒeƒ€Žži’PˆÊ: 1ƒ~ƒŠ•bj
     99 *  次のタイムティックのシステム時刻(単位: 1ミリ秒)
    105100 */
    106101extern EVTTIM   next_time;
    107102
    108103/*
    109  *  ƒVƒXƒeƒ€ŽžÏŽZ—p•Ï”i’PˆÊ: 1/TIC_DENOƒ~ƒŠ•bj
    110  *
    111  *  ŽŸ‚̃^ƒCƒ€ƒeƒBƒbƒN‚̃VƒXƒeƒ€Žž‚̉ºˆÊŒ
    112 ‚ðŽ¦‚·iãˆÊŒ
    113 ‚Ínext_timejD
    114  *  TIC_DENO‚ª1‚ÌŽž‚́C‰ºˆÊŒ
    115 ‚͏í‚É0‚Å‚ ‚邽‚߁C‚±‚̕ϐ”‚Í•K—v‚È‚¢D
     104 *  システム時刻積算用変数(単位: 1/TIC_DENOミリ秒)
     105 *
     106 *  次のタイムティックのシステム時刻の下位桁を示す(上位桁はnext_time).
     107 *  TIC_DENOが1の時は,下位桁は常に0であるため,この変数は必要ない.
    116108 */
    117109#if TIC_DENO != 1U
     
    120112
    121113/*
    122  *  ‘Š‘ÎŽžŠÔ‚̊Žži’PˆÊ: 1ƒ~ƒŠ•bj
    123  *
    124  *  ŽŸ‚̃^ƒCƒ€ƒeƒBƒbƒN‚̃VƒXƒeƒ€Žž‚ðØ‚èã‚°‚½ŽžDTIC_DENO‚ª1‚ÌŽž
    125  *  ‚́Cnext_time‚Ɉê’v‚·‚éD
     114 *  相対時間の基準時刻(単位: 1ミリ秒)
     115 *
     116 *  次のタイムティックのシステム時刻を切り上げた時刻.TIC_DENOが1の時
     117 *  は,next_timeに一致する.
    126118 */
    127119#if TIC_DENO == 1U
     
    132124
    133125/*
    134  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv‚̍Ōã‚ÌŽg—p—̈æ‚̃Cƒ“ƒfƒbƒNƒX
    135  *
    136  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv‚É“o˜^‚³‚ê‚Ä‚¢‚éƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̐”‚Ɉê’v‚·‚éD
     126 *  タイムイベントヒープの最後の使用領域のインデックス
     127 *
     128 *  タイムイベントヒープに登録されているタイムイベントの数に一致する.
    137129 */
    138130extern uint_t   last_index;
    139131
    140132/*
    141  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—ƒ‚ƒWƒ
    142 [ƒ‹‚̏‰Šú‰»
     133 *  タイムイベント管理モジュールの初期化
    143134 */
    144135extern void     initialize_tmevt(void);
    145136
    146137/*
    147  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚Ì‘}“üˆÊ’u‚Ì’Tõ
     138 *  タイムイベントの挿入位置の探索
    148139 */
    149140extern uint_t   tmevt_up(uint_t index, EVTTIM time);
     
    151142
    152143/*
    153  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv‚Ö‚Ì“o˜^‚ƍ폜
     144 *  タイムイベントヒープへの登録と削除
    154145 */
    155146extern void     tmevtb_insert(TMEVTB *p_tmevtb, EVTTIM time);
     
    157148
    158149/*
    159  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚Ì“o˜^i‘Š‘ÎŽžŠÔŽw’èj
    160  *
    161  *  time‚ÅŽw’肵‚½‘Š‘ÎŽžŠÔ‚ªŒo‰ß‚µ‚½Œã‚ɁCarg‚ðˆø”‚Æ‚µ‚Äcallback‚ªŒÄ
    162  *  ‚яo‚³‚ê‚é‚悤‚ɁCp_tmevtb‚ÅŽw’肵‚½ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚ð“o˜^‚·
    163  *  ‚éD
     150 *  タイムイベントブロックの登録(相対時間指定)
     151 *
     152 *  timeで指定した相対時間が経過した後に,argを引数としてcallbackが呼
     153 *  び出されるように,p_tmevtbで指定したタイムイベントブロックを登録す
     154 *  る.
    164155 * 
    165156 */
     
    175166
    176167/*
    177  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚Ì“o˜^iƒCƒxƒ“ƒg”­¶ŽžŽw’èj
    178  *
    179  *  time‚ÅŽw’肵‚½ƒCƒxƒ“ƒg”­¶Žž‚ɁCarg‚ðˆø”‚Æ‚µ‚Äcallback‚ªŒÄ‚яo
    180  *  ‚³‚ê‚é‚悤‚ɁCp_tmevtb‚ÅŽw’肵‚½ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚ð“o˜^‚·‚éD
     168 *  タイムイベントブロックの登録(イベント発生時刻指定)
     169 *
     170 *  timeで指定したイベント発生時刻に,argを引数としてcallbackが呼び出
     171 *  されるように,p_tmevtbで指定したタイムイベントブロックを登録する.
    181172 */
    182173Inline void
     
    189180
    190181/*
    191  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚Ì“o˜^‰ðœ
     182 *  タイムイベントブロックの登録解除
    192183 */
    193184Inline void
     
    198189
    199190/*
    200  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚Ü‚Å‚ÌŽc‚莞ŠÔ‚ÌŒvŽZ
     191 *  タイムイベントまでの残り時間の計算
    201192 */
    202193extern RELTIM   tmevt_lefttim(TMEVTB *p_tmevtb);
    203194
    204195/*
    205  *  ƒ^ƒCƒ€ƒeƒBƒbƒN‚Ì‹Ÿ‹‹
     196 *  タイムティックの供給
    206197 */
    207198extern void     signal_time(void);
Note: See TracChangeset for help on using the changeset viewer.