2013-08-07 30 views
1

場景:假設如果我在做echo 1 > sysfs_entry - 它會開始做一些I/O操作,直到我做了echo 0 > sysfs_entry。 在這裏,我想在sysfs_entry中實現定時器,這樣它應該在t秒後停止I/O操作,即使我不給echo 0 > sysfs_entry如何在驅動程序的sysfs中實現timer expire函數。

PS:我不想使用繁忙的等待方法。

首選:延期/延遲工作

請別人幫我解決這個場景。

回答

3

您可以使用add_timer()del_timer() API。事件隊列也可能工作(取決於上下文)。有關更多詳細信息,請閱讀免費提供的Linux設備驅動程序(又名LDD)手冊的第7章«時間,延遲和延期工作»right here。定時器API在第198頁有描述。

+0

感謝您的指針。是非常有幫助的。我正在尋找內核源代碼中的示例。一旦完成,我會給出答案;)它會在一天結束時結束。 – kzs

0

在設備驅動程序的寫回調中添加一個帶add_timer()的定時器,並確保在讀回調中使用del_timer()或del_timer_sync()。

相關問題