Chinaunix
标题:
关于设备号的问题
[打印本页]
作者:
要有上进心
时间:
2013-01-30 23:02
标题:
关于设备号的问题
本帖最后由 要有上进心 于 2013-01-30 23:31 编辑
我在kobj_map的源码中 看到 次设备号 好像可以跨越主设备号 也就是 baseminor + minorct > (1 << MINORBITS)
unsigned n = MAJOR(dev + range - 1) - MAJOR(dev) + 1;
unsigned index = MAJOR(dev);
unsigned i;
struct probe *p;
if (n > 255)
n = 255;
p = kmalloc(sizeof(struct probe) * n, GFP_KERNEL);
if (p == NULL)
return -ENOMEM;
for (i = 0; i < n; i++, p++) {
p->owner = module;
p->get = probe;
p->lock = lock;
p->dev = dev;
p->range = range;
p->data = data;
}
复制代码
这是一段 kobj_map中的代码。。。。。
如果可以跨越主设备号。那个在register_chrdev_region中
如果 首先注册一个 major = 4 baseminor = 0xffff0 count =0x20
然后在注册一个 major =5 baseminor = 0 count = 0x20
因为第一个注册的时候 major_to_index所得的结果是 4
而第二个所得的结果是5
函数不能检测到 这两个 设备号范围重叠了啊。。。。。。。。
求解答。。。。是我根本没看懂了。。还是。。。。
作者:
要有上进心
时间:
2013-01-30 23:27
本帖最后由 要有上进心 于 2013-01-31 00:06 编辑
好吧,我少看了一段代码,自己弄懂了。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2