GadgetSeed  0.9.6
sysevent.c ファイル

システムイベント [詳解]

#include "sysconfig.h"
#include "tkprintf.h"
#include "sysevent.h"
#include "timer.h"
#include "task/syscall.h"
#include "task/task.h"
#include "task/event.h"
#include "dkprintf.h"
sysevent.c の依存先関係図:

[ソースコード]

マクロ定義

#define GSC_KERNEL_MAX_SYSTEMEVENT_COUNT   8
 $gsc システムイベントの最大バッファ数
 
#define GSC_KERNEL_SYSTEMEVENT_LIFE_TIME   3000
 $gsc システムイベントの寿命(msec)
 
#define GSC_KEY_REPEAT_START_TIME   500
 $gsc キーリピート開始までの時間(msec)
 
#define GSC_KEY_REPEAT_INTERVAL_TIME   50
 $gsc キーリピート間隔時間(msec)
 

関数

void init_event (void)
 全てのシステムイベントバッファのイベントを初期化(削除)する
 
int set_event (struct st_sysevent *event)
 システムイベントを登録する [詳解]
 
void push_event_interrupt (void *sp, struct st_sysevent *event)
 割り込みハンドラからシステムイベントを登録する [詳解]
 
void set_event_interrupt (void *sp)
 割り込みハンドラからシステムイベント待ちタスクを起床する [詳解]
 
int create_event (unsigned short what, unsigned short arg, void *private_data)
 システムイベントを作成し、追加する [詳解]
 
int get_event (struct st_sysevent *event, unsigned int timeout)
 システムイベントを待つ [詳解]
 

変数

static struct st_event evtque
 
static struct st_sysevent event_buf [GSC_KERNEL_MAX_SYSTEMEVENT_COUNT+1]
 イベントバッファ
 
static unsigned short last_key
 最後に押されたキー
 
static unsigned int key_repeat_start_time
 キーリピート開始までの時間
 
static unsigned int key_repeat_start_count
 キーリピート開始カウンタ
 
static unsigned int key_repeat_flg
 キーリピート開始フラグ
 
static unsigned int key_repeat_int_time
 キーリピート間隔時間
 
static unsigned long long key_repeat_int_count
 キーリピート時間カウンタ
 

詳解

システムイベント

日付
2007.05.05
著者
Takashi SHUDO

sysevent.c に定義があります。

関数詳解

◆ create_event()

int create_event ( unsigned short  what,
unsigned short  arg,
void *  private_data 
)

システムイベントを作成し、追加する

引数
whatシステムイベントの種類
argシステムイベントの引数
戻り値
=0:成功 !=0:エラー

sysevent.c172 行目に定義があります。

参照先 st_sysevent::arg, set_event(), st_sysevent::what.

呼び出し関係図:

◆ get_event()

int get_event ( struct st_sysevent event,
unsigned int  timeout 
)

システムイベントを待つ

引数
event取得したシステムイベント
timeoutシステムイベント取得タイムアウト時間
覚え書き
キーリピートを取得するには timeout は50以下に設定する必要がある
戻り値
0:取得イベントなし 1:イベント取得成功 -1:寿命切れイベントの取得

sysevent.c195 行目に定義があります。

参照先 event_wait().

呼び出し関係図:

◆ push_event_interrupt()

void push_event_interrupt ( void *  sp,
struct st_sysevent event 
)

割り込みハンドラからシステムイベントを登録する

引数
spスタックポインタ
event登録するシステムイベント

sysevent.c146 行目に定義があります。

◆ set_event()

int set_event ( struct st_sysevent event)

システムイベントを登録する

引数
event登録するシステムイベント
戻り値
!=0:エラー

sysevent.c128 行目に定義があります。

参照元 create_event().

被呼び出し関係図:

◆ set_event_interrupt()

void set_event_interrupt ( void *  sp)

割り込みハンドラからシステムイベント待ちタスクを起床する

引数
spスタックポインタ

sysevent.c158 行目に定義があります。