您现在的位置是:首页 > 正文

struct device中消失的bus_id的取代方法

2024-01-30 23:50:51阅读 0

编写总线设备驱动程序的时候,发现2.6.33.2内核中的struct device已经没有bus_id的成员了,发现了const char *init_name成员。但是,这个成员是不能直接用来设置和读取设备名的。

 

对内核操作的方法为dev_name和dev_set_name。内核中的定义是:

 

1) dev_name

static inline const char *dev_name(const struct device *dev)
{
    return kobject_name(&dev->kobj);
}

 

2) dev_set_name

/**
 * dev_set_name - set a device name
 * @dev: device
 * @fmt: format string for the device's name
 */
int dev_set_name(struct device *dev, const char *fmt, ...)
{
    va_list vargs;
    int err;

    va_start(vargs, fmt);
    err = kobject_set_name_vargs(&dev->kobj, fmt, vargs);
    va_end(vargs);
    return err;
}
EXPORT_SYMBOL_GPL(dev_set_name);

 

具体使用例子请看我接下来的关于总线设备驱动的例子的文章。

网站文章