間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

メジャー番号とマイナー番号

http://www.ie.u-ryukyu.ac.jp/~e045713/Kernel/act6.html

また,2.6ではメジャー番号が,今まで8ビットで割り当てていたものが12ビットとなり, 1〜4095まで割り当てることができる.0は動的割当となる(今まで通り). マイナー番号も20ビットと拡張されている.

めも
http://lxr.linux.no/linux+v2.6.18.8/include/linux/types.h#L19

  19typedef __u32 __kernel_dev_t;
(中略)
  22typedef __kernel_dev_t          dev_t;

http://lxr.linux.no/linux+v2.6.18.8/include/linux/kdev_t.h

   4#define MINORBITS       20
   5#define MINORMASK       ((1U << MINORBITS) - 1)
   6
   7#define MAJOR(dev)      ((unsigned int) ((dev) >> MINORBITS))
   8#define MINOR(dev)      ((unsigned int) ((dev) & MINORMASK))

正しそうだ。
参考
http://f42.aaa.livedoor.jp/~hassaku/crswikicrs/?LinuxDriver%A4%D8%A4%CE%C6%BB4%3F
http://www.il.is.s.u-tokyo.ac.jp/~timai/kernel-seminar/linux-kernel-13.ppt
http://mkosaki.blog46.fc2.com/blog-entry-169.html

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。