linux-4.4/ドライバ固有情報
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#c2865b7a]
#backlinks
*説明 [#z89137b0]
デバイスドライバ内で、ドライバの固有情報を設定、取得する...
基本的には、最初に dev_set_drvdata() で struct device に...
そんな機能の何が嬉しいか?というと、コールバックなどで引...
デバイスとドライバの対応を持つ必要も無いし、グローバル変...
使い方のイメージ
struct my_device {
int some_data;
...
};
//デバイスの登録
int my_probe(struct device *dev)
{
struct my_device *d;
...
//ドライバで使う固有のデータなどを設定する
d = kzalloc(sizeof(struct my_device));
d->some_data = 1000;
...
//デバイスに固有データの領域を覚えておいてもらう
dev_set_drvdata(dev, d);
...
device_add(dev);
}
//デバイスに対して何かする
int my_callback(struct device *dev)
{
struct my_device *d = dev_get_drvdata(dev);
...
//ドライバで使う固有のデータにアクセスできる
printk("data is %d.\n", d->some_data);
...
}
**参考 [#le6510d0]
取得、設定する関数は下記の通り。
-[[linux-4.4.1/dev_get_drvdata()]]
-[[linux-4.4.1/dev_set_drvdata()]]
**関連モジュール [#zf10df54]
似た名前の関数 (...._get_drvdata()) は他にもあるが、同じ...
*コメント [#q954ac47]
終了行:
*参照元 [#c2865b7a]
#backlinks
*説明 [#z89137b0]
デバイスドライバ内で、ドライバの固有情報を設定、取得する...
基本的には、最初に dev_set_drvdata() で struct device に...
そんな機能の何が嬉しいか?というと、コールバックなどで引...
デバイスとドライバの対応を持つ必要も無いし、グローバル変...
使い方のイメージ
struct my_device {
int some_data;
...
};
//デバイスの登録
int my_probe(struct device *dev)
{
struct my_device *d;
...
//ドライバで使う固有のデータなどを設定する
d = kzalloc(sizeof(struct my_device));
d->some_data = 1000;
...
//デバイスに固有データの領域を覚えておいてもらう
dev_set_drvdata(dev, d);
...
device_add(dev);
}
//デバイスに対して何かする
int my_callback(struct device *dev)
{
struct my_device *d = dev_get_drvdata(dev);
...
//ドライバで使う固有のデータにアクセスできる
printk("data is %d.\n", d->some_data);
...
}
**参考 [#le6510d0]
取得、設定する関数は下記の通り。
-[[linux-4.4.1/dev_get_drvdata()]]
-[[linux-4.4.1/dev_set_drvdata()]]
**関連モジュール [#zf10df54]
似た名前の関数 (...._get_drvdata()) は他にもあるが、同じ...
*コメント [#q954ac47]
ページ名: