--- xmil/nevent.h 2004/08/11 12:08:16 1.1 +++ xmil/nevent.h 2008/06/02 20:07:30 1.4 @@ -4,7 +4,7 @@ enum { NEVENT_MAXCLOCK = 0x400000, NEVENT_FRAMES = 0, - NEVENT_TIME = 1, + NEVENT_RTC = 1, NEVENT_FDC = 2, NEVENT_CTC0 = 3, NEVENT_CTC1 = 4, @@ -20,17 +20,20 @@ typedef struct _neventitem _NEVENTITEM; typedef struct _neventitem *NEVENTITEM; typedef void (*NEVENTCB)(UINT id); +#define NEVENTITEM_NONE ((NEVENTITEM)-1) +#define NEVENTITEM_TERM ((NEVENTITEM)0) + + struct _neventitem { + NEVENTITEM next; SINT32 clock; SINT32 baseclock; NEVENTCB proc; - UINT32 param; }; typedef struct { - UINT readyevents; - UINT level[NEVENT_MAXEVENTS]; _NEVENTITEM item[NEVENT_MAXEVENTS]; + NEVENTITEM first; } _NEVENT, *NEVENT; @@ -40,36 +43,36 @@ extern "C" { extern _NEVENT nevent; -// 初期化 +/* 初期化 */ void nevent_allreset(void); -// 最短イベントのセット +/* 最短イベントのセット */ void nevent_get1stevent(void); -// 時間を進める +/* 時間を進める */ void nevent_progress(void); -// イベントの実行 +/* イベントの実行 */ void nevent_execule(void); -// イベントの追加 +/* イベントの追加 */ void nevent_set(UINT id, SINT32 eventclock, NEVENTCB proc, BRESULT absolute); void nevent_repeat(UINT id); void nevent_setbyms(UINT id, SINT32 ms, NEVENTCB proc, BRESULT absolute); -// イベントの削除 +/* イベントの削除 */ void nevent_reset(UINT id); -// イベントの動作状態取得 +/* イベントの動作状態取得 */ BRESULT nevent_iswork(UINT id); -// 実行したクロック数の取得 +/* 実行したクロック数の取得 */ SINT32 nevent_getwork(UINT id); -// イベント実行までのクロック数の取得 +/* イベント実行までのクロック数の取得 */ SINT32 nevent_getremain(UINT id); -// NEVENTの強制脱出 +/* NEVENTの強制脱出 */ void nevent_forceexit(void); #ifdef __cplusplus