マイナー番号
ええと、課題では
- 偶数マイナー番号は書き込み
- 逆は読み込み
となっている。
デバイスのマイナー番号は MINOR というマクロと open に渡される i_node なオブジェクトの r_dev という属性で取得できる模様。
これは昨晩作成したモジュールにも盛り込まれておりますな。
static int yamanetoshi_open(struct inode *inode, struct file *file) { printk("yamanetoshi_open\n"); printk(" file->f_version : %lu\n", file->f_version); printk(" MINOR(inode->i_rdev): %d\n", MINOR(inode->i_rdev)); return 0; }
open なモードは file 構造体の f_mode 属性で分かるんかな。でも open が失敗した時のナニが不明。単純に -1 戻せば良いとか? (を
あ、教科書にしてるナニには EOF 戻せば良いとあるな (ちなみに -1)。