Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

FreeBSDのcallout

More than 3 years have passed since last update.

FreeBSDのカーネル内で定期的に処理をしたい場合はcalloutを使うようです。

まず初期化をします。

callout_init(&sc->callout_tick, 0);

第一引数は初期化するインスタンスで、第二引数はマルチプロセッサー対応かどうかで0は対応していないということのようです。

実際の関数を登録します。

callout_reset(&sc->callout_tick, hz, ip17x_tick, sc);

hz tick後にip17x_tick関数を実行し引数をscを渡します。ip17x_tickの関数の中でcallout_resetを呼び出す事によって繰り返しip17x_tickが実行される事になります。

止める時は

callout_drain(&sc->callout_tick);

とします。

man page

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away