Linuxデバイスドライバ開発 fops(3)

container_of

前回のLinuxデバイスドライバ開発 fops(2)からの続き。
inode->i_cdev からcontainer_ofを使用しデバイスの情報を取得する。
今回のドライバ実装では、複数回open(同じデバイスの情報をアクセス)した場合、動作上問題が発生する。
ただし、close後もデータ保持する。

実行確認

$ sudo insmod skel_drv.ko
$ ./test
fd0 -
fd1 -
fd0 - ABCT
fd1 - ABCT
fd0 - ABCT
$ ./test
fd0 - ABCT
fd1 - ABCT
fd0 - ABCT
fd1 - ABCT
fd0 - ABCT
$ sudo rmmod skel_drv

ソースコード ダウンロード

 

Linuxデバイスドライバ開発


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS