来源:
ChinaUnix博客 作者:
ChinaUnix博客 发布时间:2008-01-01 14:02:00

linux下的设备在/dev/目录下一般会有相对应的节点,关于设备号有如下的言论:
主设备号被系统用来确定驱动程式,次设备号被驱动程式用来确定具体的设备。
像如下的两个字符设备节点:
crw-r--r-- 1 root root 254, 0 Jan 9 13:14 /dev/nx_ids
crw-r--r-- 1 root root 254, 99 Jan 9 13:14 /dev/nx_ips
他们的主设备号都是254,当用户代码打开这两个设备的时候,系统会定位到同一个驱动程式,并调用其open函数。那么驱动程式怎么知道用户打开的是哪一个设备呢?就是根据次设备号来判断的。
int my_drv_open(struct inode *inode, struct file *filp)
{
if (0 == MINOR(inode->i_rdev))
{
//nx_ids
}
else if (99 == MINOR(inode->i_rdev))
{
//nx_ips
}
return 0;
}
在include/linux/kdev_t.h文档中能够看到操作设备号的方法
本文来自ChinaUnix博客,假如查看原文请点:http://blog.chinaunix.net/u/8754/showart_460186.html
|
还没有关于此文章的相关评论!