Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163360
  • 博文数量: 60
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 458
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-04 10:01
文章分类

全部博文(60)

文章存档

2016年(3)

2014年(57)

我的朋友

分类: LINUX

2014-05-23 16:53:40

 在新版本的内核中struct device 已经没有bus_id成员,取而代之的是通过dev_name和dev_set_name对设备的名字进行操作。

        dev_name和dev_set_name在2.6.35.6内核中的源代码如下:

        static inline const char *dev_name(const struct device *dev)
        {
                /* Use the init name until the kobject becomes available */
                if (dev->init_name)
                        return dev->init_name;

                return kobject_name(&dev->kobj);
        }

        extern int dev_set_name(struct device *dev, const char *name, ...)
                __attribute__((format(printf, 2, 3)));



kernel 邮件列表

中讲了:struct device - replace bus_id with dev_name(),以后只要使用dev->bus_id的时候,改成dev_name(dev)就可以了。


相关更改代码如下:

//设置部分:


        dev_set_name(&my_bus,"my_bus0");

static int my_match(struct device *dev, struct device_driver *driver)

{

//读取方法:

 return !strncmp(dev_name(dev), driver->name, strlen(driver->name));

}


阅读(1353) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~