Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    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 è²¬ã™ã‚‹ã“と.
    47  *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     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 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              タイムイベント管理モジュール
     44 *              タイムイベント管理モジュール
    6045 */
    6146
     
    6752
    6853/*
    69  *  イベント時刻のデータ型の定義[ASPD1001ï¼½
    70  *
    71  *  タイムイベントヒープに登録するタイムイベントの発生時刻を表現するた
    72  *  めのデータ型.オーバヘッド低減のために,32ビットで扱う.
     54 *  イベント時刻のデータ型の定義[ASPD1001]
     55 *
     56 *  タイムイベントヒープに登録するタイムイベントの発生時刻を表現するた
     57 *  めのデータ型.オーバヘッド低減のために,32ビットで扱う.
    7358 */
    7459typedef uint32_t        EVTTIM;
    7560
    7661/*
    77  *  タイムイベントヒープ中のノードのデータ型の前方参ç
    78 §
     62 *  タイムイベントヒープ中のノードのデータ型の前方参照
    7963 */
    8064typedef union time_event_node TMEVTN;
    8165
    8266/*
    83  *  タイムイベントブロックのデータ型の定義
    84  */
    85 typedef void    (*CBACK)(void *);       /* コールバック関数の型 */
     67 *  タイムイベントブロックのデータ型の定義
     68 */
     69typedef void    (*CBACK)(void *);       /* コールバック関数の型 */
    8670
    8771typedef struct time_event_block {
    88         EVTTIM  evttim;                 /* タイムイベントの発生時刻 */
    89         TMEVTN  *p_tmevtn;              /* タイムイベントヒープ中での位置 */
    90         CBACK   callback;               /* コールバック関数 */
    91         void    *arg;                   /* コールバック関数へ渡す引数 */
     72        EVTTIM  evttim;                 /* タイムイベントの発生時刻 */
     73        TMEVTN  *p_tmevtn;              /* タイムイベントヒープ中での位置 */
     74        CBACK   callback;               /* コールバック関数 */
     75        void    *arg;                   /* コールバック関数へ渡す引数 */
    9276} TMEVTB;
    9377
    9478/*
    95  *  タイムイベントヒープ中のノードのデータ型の定義
    96  *
    97  *  タイムイベントヒープのå
    98 ˆé ­ã®ãƒŽãƒ¼ãƒ‰ï¼ˆtmevt_heap[0])に,最後の使用領
    99  *  域を指すポインタ(p_last)を格納し,それ以降をタイムイベントヒープ
    100  *  として使用する.(tmevt_heap[0].p_last - tmevt_heap) が,タイムイベ
    101  *  ントヒープに登録されているタイムイベントの数となる.
     79 *  タイムイベントヒープ中のノードのデータ型の定義
     80 *
     81 *  タイムイベントヒープの先頭のノード(tmevt_heap[0])に,最後の使用領
     82 *  域を指すポインタ(p_last)を格納し,それ以降をタイムイベントヒープ
     83 *  として使用する.(tmevt_heap[0].p_last - tmevt_heap) が,タイムイベ
     84 *  ントヒープに登録されているタイムイベントの数となる.
    10285 */
    10386union time_event_node {
    104         TMEVTB  *p_tmevtb;              /* 対応するタイムイベントブロック */
    105         TMEVTN  *p_last;                /* タイムイベントヒープの最後の使用領域 */
     87        TMEVTB  *p_tmevtb;              /* 対応するタイムイベントブロック */
     88        TMEVTN  *p_last;                /* タイムイベントヒープの最後の使用領域 */
    10689};
    10790
    10891/*
    109  *  タイムイベントヒープ(kernel_cfg.c)
     92 *  タイムイベントヒープ(kernel_cfg.c)
    11093 */
    11194extern TMEVTN   tmevt_heap[];
    11295
    11396/*
    114  *  境界イベント時刻[ASPD1008ï¼½
     97 *  境界イベント時刻[ASPD1008]
    11598 */
    11699extern EVTTIM   boundary_evttim;
    117100
    118101/*
    119  *  現在のイベント時刻と境界イベント時刻の差[ASPD1010ï¼½
     102 *  現在のイベント時刻と境界イベント時刻の差[ASPD1010]
    120103 */
    121104#define BOUNDARY_MARGIN         (200000000U)
    122105
    123106/*
    124  *  最後に現在時刻を算出した時点でのイベント時刻[ASPD1012ï¼½
     107 *  最後に現在時刻を算出した時点でのイベント時刻[ASPD1012]
    125108 */
    126109extern EVTTIM   current_evttim;
    127110
    128111/*
    129  *  最後に現在時刻を算出した時点での高分解能タイマのカウント値[ASPD1012ï¼½
     112 *  最後に現在時刻を算出した時点での高分解能タイマのカウント値[ASPD1012]
    130113 */
    131114extern HRTCNT   current_hrtcnt;
    132115
    133116/*
    134  *  最も進んでいた時のイベント時刻[ASPD1041ï¼½
     117 *  最も進んでいた時のイベント時刻[ASPD1041]
    135118 */
    136119extern EVTTIM   monotonic_evttim;
    137120
    138121/*
    139  *  システム時刻のオフセット[ASPD1043ï¼½
    140  *
    141  *  get_timで参ç
    142 §ã™ã‚‹ã‚·ã‚¹ãƒ†ãƒ æ™‚刻とmonotonic_evttimの差を保持する.
     122 *  システム時刻のオフセット[ASPD1043]
     123 *
     124 *  get_timで参照するシステム時刻とmonotonic_evttimの差を保持する.
    143125 */
    144126extern SYSTIM   systim_offset;
    145127
    146128/*
    147  *  高分解能タイマ割込みの処理中であることを示すフラグ[ASPD1032ï¼½
     129 *  高分解能タイマ割込みの処理中であることを示すフラグ[ASPD1032]
    148130 */
    149131extern bool_t   in_signal_time;
    150132
    151133/*
    152  *  タイムイベント管理モジュールの初期化
     134 *  タイムイベント管理モジュールの初期化
    153135 */
    154136extern void     initialize_tmevt(void);
    155137
    156138/*
    157  *  タイムイベントの挿å
    158 ¥ä½ç½®ã®æŽ¢ç´¢
     139 *  タイムイベントの挿入位置の探索
    159140 */
    160141extern TMEVTN   *tmevt_up(TMEVTN *p_tmevtn, EVTTIM evttim);
     
    162143
    163144/*
    164  *  現在のイベント時刻の更新
    165  *
    166  *  current_evttimとcurrent_hrtcntを,現在の値に更新する.
     145 *  現在のイベント時刻の更新
     146 *
     147 *  current_evttimとcurrent_hrtcntを,現在の値に更新する.
    167148 */
    168149extern void             update_current_evttim(void);
    169150
    170151/*
    171  *  高分解能タイマ割込みの発生タイミングの設定
    172  *
    173  *  現在のイベント時刻を取得した後に呼び出すことを想定している.
     152 *  高分解能タイマ割込みの発生タイミングの設定
     153 *
     154 *  現在のイベント時刻を取得した後に呼び出すことを想定している.
    174155 */
    175156extern void             set_hrt_event(void);
    176157
    177158/*
    178  *  タイムイベントの登録
    179  *
    180  *  p_tmevtbで指定したタイムイベントブロックを登録する.タイムイベント
    181  *  の発生時刻,コールバック関数,コールバック関数へ渡す引数は,
    182  *  p_tmevtbが指すタイムイベントブロック中に設定しておく.
     159 *  タイムイベントの登録
     160 *
     161 *  p_tmevtbで指定したタイムイベントブロックを登録する.タイムイベント
     162 *  の発生時刻,コールバック関数,コールバック関数へ渡す引数は,
     163 *  p_tmevtbが指すタイムイベントブロック中に設定しておく.
    183164 */
    184165extern void             tmevtb_register(TMEVTB *p_tmevtb);
    185166
    186167/*
    187  *  相対時間指定によるタイムイベントの登録
    188  *
    189  *  timeで指定した相対時間が経過した後にコールバック関数が呼び出される
    190  *  ように,p_tmevtbで指定したタイムイベントブロックを登録する.コール
    191  *  バック関数,コールバック関数へ渡す引数は,p_tmevtbが指すタイムイベ
    192  *  ントブロック中に設定しておく.
     168 *  相対時間指定によるタイムイベントの登録
     169 *
     170 *  timeで指定した相対時間が経過した後にコールバック関数が呼び出される
     171 *  ように,p_tmevtbで指定したタイムイベントブロックを登録する.コール
     172 *  バック関数,コールバック関数へ渡す引数は,p_tmevtbが指すタイムイベ
     173 *  ントブロック中に設定しておく.
    193174 */
    194175extern void             tmevtb_enqueue(TMEVTB *p_tmevtb, RELTIM time);
    195176
    196177/*
    197  *  タイムイベントの登録解除
     178 *  タイムイベントの登録解除
    198179 */
    199180extern void             tmevtb_dequeue(TMEVTB *p_tmevtb);
    200181
    201182/*
    202  *  システム時刻の調整時のエラーチェック
    203  *
    204  *  adjtimで指定された時間の分,システム時刻を調整してよいか判定する.
    205  *  調整してはならない場合にtrue,そうでない場合にfalseを返す.現在のイ
    206  *  ベント時刻を取得した後に呼び出すことを想定している.
     183 *  システム時刻の調整時のエラーチェック
     184 *
     185 *  adjtimで指定された時間の分,システム時刻を調整してよいか判定する.
     186 *  調整してはならない場合にtrue,そうでない場合にfalseを返す.現在のイ
     187 *  ベント時刻を取得した後に呼び出すことを想定している.
    207188 */
    208189extern bool_t   check_adjtim(int_t adjtim);
    209190
    210191/*
    211  *  タイムイベントが発生するまでの時間の計算
     192 *  タイムイベントが発生するまでの時間の計算
    212193 */
    213194extern RELTIM   tmevt_lefttim(TMEVTB *p_tmevtb);
    214195
    215196/*
    216  *  高分解能タイマ割込みの処理
     197 *  高分解能タイマ割込みの処理
    217198 */
    218199extern void     signal_time(void);
Note: See TracChangeset for help on using the changeset viewer.