编写总线设备驱动程序的时候,发现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);
具体使用例子请看我接下来的关于总线设备驱动的例子的文章。