time_event.c

タイムイベント管理モジュール [詳細]

#include "fdmp_kernel.h"
#include "check.h"
#include "class.h"
#include "time_event.h"

time_event.cのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define PARENT(index)   ((index) >> 1)
#define LCHILD(index)   ((index) << 1)
#define TMEVT_NODE(ccb, index)   ((ccb->p_tmevt_heap)[(index) - 1])
#define EVTTIM_LT(t1, t2)   (((t1) - current_time) < ((t2) - current_time))
#define EVTTIM_LE(t1, t2)   (((t1) - current_time) <= ((t2) - current_time))

関数

Inline void tmevtb_delete_top ()
 タイムイベントヒープの先頭のノードの削除


説明

タイムイベント管理モジュール

MP化による変更

  • 各関数の引数にccbを追加

time_event.c で定義されています。


マクロ定義

#define EVTTIM_LE t1,
t2   )     (((t1) - current_time) <= ((t2) - current_time))
 

time_event.c69 行で定義されています。

#define EVTTIM_LT t1,
t2   )     (((t1) - current_time) < ((t2) - current_time))
 

time_event.c68 行で定義されています。

#define LCHILD index   )     ((index) << 1)
 

time_event.c58 行で定義されています。

#define PARENT index   )     ((index) >> 1)
 

time_event.c57 行で定義されています。

#define TMEVT_NODE ccb,
index   )     ((ccb->p_tmevt_heap)[(index) - 1])
 

time_event.c59 行で定義されています。

参照元 tmevtb_delete_top().


関数

Inline void tmevtb_delete_top  ) 
 

タイムイベントヒープの先頭のノードの削除

time_event.c307 行で定義されています。

参照先 last_indexmy_local_ccbtmevt_downTMEVT_NODE.

00308 {
00309     UINT    index;
00310     EVTTIM  event_time = TMEVT_NODE(my_local_ccb, last_index).time;
00311 
00312     /*
00313      *  削除によりタイムイベントヒープが空になる場合は何もしない.
00314      */
00315     if (--last_index == 0) {
00316         return;
00317     }
00318 
00319     /*
00320      *  ルートノードに最後のノード(last_index + 1 の位置のノード)
00321      *  を挿入し,それを適切な位置へ移動させる.実際には,最後のノー
00322      *  ドを実際に挿入するのではなく,ルートノードが空ノードになる
00323      *  ので,最後のノードを挿入すべき位置へ向けて空ノードを移動さ
00324      *  せる.
00325      */
00326     index = tmevt_down(my_local_ccb, 1, event_time);
00327 
00328     /*
00329      *  最後のノードを index の位置に挿入する.
00330      */ 
00331     TMEVT_NODE(my_local_ccb, index) = TMEVT_NODE(my_local_ccb, last_index + 1);
00332     TMEVT_NODE(my_local_ccb, index).tmevtb->index = index;
00333 }


Copyright © 2006 by TAKAGI Nobuhisa.
このページは Mon Apr 3 23:49:19 2006 に Doxygen によって生成されました。