FC2ブログ
メモ帳
メモ帳
スポンサーサイト
--年--月--日 (--) --:-- | 編集
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
wait_event
2007年05月11日 (金) 11:46 | 編集
while(!kthread_should_stop())でドライバのアンロードまで
まわしっぱなしってのも何なんで、処理しないときはwait_eventで
処理を待たせる。
void wait_event(wait_queue_head_t q, int condition)
引数1:ウェイトイベントの識別に使うみたいな感じ
引数2:これが真のときに起きる。真になった瞬間に起きるんじゃないけどね。

void wake_up(wait_queue_head_t *q)
引数1:ウェイトイベントの識別に使うみたいな感じ

wait_event(hoge, hoge_bool)ってのでイベント待ちにしたら
wake_up(hoge)で起こせって事。
もちろん、イベント待ちの前にhoge_boolはfalseにね。
んでwake_upする前にhoge_boolをtrueにしてやる。しなきゃwake_up呼んでも
起きないっと。

wait_queue_head_tってのは構造体。
使う前に初期化してやること。(定義したい名前をwqとする。)
静的にしたければ
DECLARE_WAIT_QUEUE_HEAD(wq)
で定義&初期化してくれる。
動的にしたければ
wait_queue_head_t wq;
init_waitqueue_head(&wq);
って感じで。
コメント
この記事へのコメント
コメントを投稿する
URL :
コメント :
パスワード :
秘密 : 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004 Powered By FC2 allrights reserved. / template: sukechan
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。