最近在看framebuffer的内核源码:
在fbmem.c中有 register_chrdev(FB_MAJOR,"fb",&fb_fops)
这里的fb_fops应该就是上层访问的接口(write、read、mmap等操作).
在注册一个frambuffer设备的时候,会使用register_framebuffer,追踪可以看到
fb_info->dev = device_create(fb_class, fb_info->device,
MKDEV(FB_MAJOR, i), NULL, "fb%d", i);
如果注册一个设备fb0,那么在访问fb0的时候应该是执行fb_fops的操作函数。
请问:它们是如何通过一个主设备号实现关联的?
我猜测和 device_create有关,但是由于水平有限,追踪源码没有找到结果