マイナー番号

ええと、課題では

  • 偶数マイナー番号は書き込み
  • 逆は読み込み

となっている。
デバイスのマイナー番号は 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)。