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

struct file

前回のLinuxデバイスドライバ開発 デバイスからの続き。
前回作成した空実装に、struct fileを利用してオープンデバイス毎にデータを管理する実装を追加する。

動作確認のサンプルコード

実行確認

$ sudo insmod skel_drv.ko
$ ls -l /dev | grep skel
crw-rw-rw-  1 root root    246,   0  4月 15 10:04 skel_drv0
$ ./test
fd0 -
fd1 -
fd0 - TEST
fd1 - ABC
fd0 - TEST
$ sudo rmmod skel_drv
$ dmesg | tail -n15
 :
[840878.286390] skel_init
[840878.286393] skel_drv: char driver major number is 246
[840897.801551] skel_open
[840897.801574] skel_open
[840897.801622] skel_read
[840897.801885] skel_read
[840897.801901] skel_write
[840897.801905] skel_write
[840897.801909] skel_read
[840897.801918] skel_read
[840897.801926] skel_read
[840897.801937] skel_release
[840897.801946] skel_release
[840907.857138] skel_exit

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

 

Linuxデバイスドライバ開発

 

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